数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
楼主: ysr

几个vb小程序

[复制链接]
 楼主| 发表于 2023-2-7 22:58 | 显示全部楼层
本帖最后由 ysr 于 2023-2-7 15:12 编辑

11w+1为完全平方数的情况:

n=1 d=88n^2+33=11^2,  w=0
n=34 d=88n^2+33=319^2,  w=105
n=428 d=88n^2+33=4015^2,  w=16653
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-7 23:00 | 显示全部楼层
此时:m=(√d-11)/2,w=m(m+1)/2.

验证:105*11+1=1156=34*34.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-7 23:02 | 显示全部楼层
本帖最后由 ysr 于 2023-2-7 15:13 编辑

n在20000内有如下几个解:
n=1 d=88n^2+33=11^2,  w=0
n=34 d=88n^2+33=319^2,  w=105
n=428 d=88n^2+33=4015^2,  w=16653
n=13397 d=88n^2+33=125675^2,  w=16316328
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-7 23:03 | 显示全部楼层
本帖最后由 ysr 于 2023-2-7 23:48 编辑

代码如下:
Private Sub Command1_Click()
Dim a, b, c
a = Val(Text1)
Do While b <= a
d = Abs(88 * b ^ 2 + 33)
If InStr(Sqr(d), ".") = 0 Then
s = s + 1
m = (Sqr(d) - 11) / 22
w = m * (m + 1) / 2
s1 = s1 & "n=" & b & " d=88n^2+33=" & Sqr(d) & "^2,  w=" & w & vbCrLf
Else
s = s
End If

b = b + 1
Loop
If s > 0 Then
Text2 = s1
Else
Text2 = "无解"
End If


End Sub

Private Sub Command2_Click()
Text1 = ""
Text2 = ""

End Sub

回复 支持 反对

使用道具 举报

发表于 2023-2-7 23:06 | 显示全部楼层

很给力!但数论的东西用vb处理不够准确,也太辛苦,建议学习MATHEMATICA 或者PARI,PYTHON。工欲善其事,必先利其器

点评

ysr
感谢关注和支持,感谢指导,谢谢T先生!  发表于 2023-2-7 23:15
回复 支持 反对

使用道具 举报

发表于 2023-2-7 23:08 | 显示全部楼层
比如180楼的结果用MATHEMATICA可以这样得出:

  1. LinearRecurrence[{0, 6, 0, -1}, {1, 2, 4, 11}, 50]^2 - 1
复制代码


\[\{0,3,15,120,528,4095,17955,139128,609960,4726275,20720703,160554240,703893960,5454117903,23911673955,185279454480,812293020528,6294047334435,27594051024015,213812329916328,937385441796000,7263325169820735,31843510970040003,246739243443988680,1081741987539564120,8381870951925794403,36747384065375140095,284736873122033021040,1248329316235215199128,9672671815197196920975,42406449367931941630275,328586104843582662292128,1440570949193450800230240,11162254892866613321011395,48937005823209395266197903,379188080252621270252095320,1662417627039925988250498480,12881232473696256575250229503,56473262313534274205250750435,437582716025420102288255707800,1918428501033125396990275016328,14864931112390587221225443835715,65170095772812729223464099804735,504970075105254545419376834706528,2213864827774599668200789118344680,17154117622466263957037586936186255,75206234048563575989603365923914403,582735029088747719993858578995626160,2554798092823386983978313652294745040,19795836871394956215834154098915103203\}\]

点评

ysr
自编的大数运算程序时间长些,程序慢  发表于 2023-2-8 05:47
ysr
vb程序的数值计算只给出15位有效数字,要得到这样的结果需要调用自编的大数运算程序  发表于 2023-2-8 05:46
ysr
好,精彩结果,赞一个!  发表于 2023-2-7 23:14
回复 支持 反对

使用道具 举报

发表于 2023-2-7 23:22 | 显示全部楼层
本帖最后由 Treenewbee 于 2023-2-7 23:34 编辑

各类计算,还是建议选择MATHEMATICA, PARI或PYTHON
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-8 05:58 | 显示全部楼层
13w+1是完全平方数的情况:
n取20000内的值:

n=1 d=104n^2+65=13^2,  w=0
n=14 d=104n^2+65=143^2,  w=15
n=116 d=104n^2+65=1183^2,  w=1035
n=1429 d=104n^2+65=14573^2,  w=157080
n=11831 d=104n^2+65=120653^2,  w=10767120
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-8 06:25 | 显示全部楼层
17w+1为完全平方数的情况:

n取20000内:
n=1  d=136*n^2+153=17^2,  w=0
n=16  d=136*n^2+153=187^2,  w=15
n=86  d=136*n^2+153=1003^2,  w=435
n=1121  d=136*n^2+153=13073^2,  w=73920
n=6019  d=136*n^2+153=70193^2,  w=2131080
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-8 14:00 | 显示全部楼层
本帖最后由 ysr 于 2023-2-8 06:59 编辑

while True:
    try:
        a = 1
        b = 0
        c = input('请输入一个数字:')
        c = eval(c)
        
        for i in range(c):
            
            e1 = int(i)
            w = ((15 + 4 * 14**0.5) ** (2 *  e1 + 1) + (15 - 4 * 14**0.5) ** (2 *  e1 + 1)-30)/224
            print(format(w))
            
    except:
        print("错误")
        exit()
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2024-4-28 19:28 , Processed in 0.073242 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表