数学中国

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

几个vb小程序

[复制链接]
 楼主| 发表于 2023-2-8 23:07 | 显示全部楼层
本帖最后由 ysr 于 2023-2-8 15:13 编辑

'兔子数列程序
Private Sub Command1_Click()
Dim a, b, c
a = Val(Text1)
b = 0

Do While b <= a
b1 = Int((b + 1) / 2)
w = Val(((1 / 2 + Sqr(5) / 2) ^ b - (1 / 2 - Sqr(5) / 2) ^ b) / Sqr(5))
w = Int(w)
s1 = s1 & " w=" & w & vbCrLf
b = Val(b + 1)

Loop
Text2 = s1
End Sub
Private Sub Command2_Click()
Text1 = ""
Text2 = ""
End Sub
回复 支持 反对

使用道具 举报

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

兔子数列前51项:(加取整函数去掉某些项的小数)

w=0
w=1
w=1
w=2
w=3
w=5
w=8
w=13
w=21
w=34
w=55
w=89
w=144
w=233
w=377
w=610
w=987
w=1597
w=2584
w=4181
w=6765
w=10946
w=17711
w=28657
w=46368
w=75025
w=121393
w=196418
w=317811
w=514229
w=832040
w=1346269
w=2178309
w=3524578
w=5702887
w=9227465
w=14930352
w=24157817
w=39088169
w=63245986
w=102334155
w=165580141
w=267914296
w=433494437
w=701408733
w=1134903170
w=1836311903
w=2971215073
w=4807526976
w=7778742049
w=12586269025
w=20365011074
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-9 06:53 | 显示全部楼层
while True:
    try:
        a = 1
        b = 0
        c = input('请输入一个数字:')
        c = eval(c)
        
        for i in range(c):
            
            e1 = int(i)
            w = ((1/2 + 5**0.5/2) ** e1  - (1/2 - 5**0.5/2) ** e1)/5**0.5
            w = int(w)
            print(format(w))
            
    except:
        print("错误")
        exit()
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-9 06:57 | 显示全部楼层
这是兔子数列的python程序,其中也加了取整函数,不加就全是小数了。
回复 支持 反对

使用道具 举报

发表于 2023-2-9 21:51 | 显示全部楼层
ysr 发表于 2023-2-9 06:57
这是兔子数列的python程序,其中也加了取整函数,不加就全是小数了。
  1. a,b,f = 0,1,[]
  2. for i in range(100):
  3.     a, b = b, a + b
  4.     f.append(a)
  5. print(f)
复制代码


[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040, 1346269, 2178309, 3524578, 5702887, 9227465, 14930352, 24157817, 39088169, 63245986, 102334155, 165580141, 267914296, 433494437, 701408733, 1134903170, 1836311903, 2971215073, 4807526976, 7778742049, 12586269025, 20365011074, 32951280099, 53316291173, 86267571272, 139583862445, 225851433717, 365435296162, 591286729879, 956722026041, 1548008755920, 2504730781961, 4052739537881, 6557470319842, 10610209857723, 17167680177565, 27777890035288, 44945570212853, 72723460248141, 117669030460994, 190392490709135, 308061521170129, 498454011879264, 806515533049393, 1304969544928657, 2111485077978050, 3416454622906707, 5527939700884757, 8944394323791464, 14472334024676221, 23416728348467685, 37889062373143906, 61305790721611591, 99194853094755497, 160500643816367088, 259695496911122585, 420196140727489673, 679891637638612258, 1100087778366101931, 1779979416004714189, 2880067194370816120, 4660046610375530309, 7540113804746346429, 12200160415121876738, 19740274219868223167, 31940434634990099905, 51680708854858323072, 83621143489848422977, 135301852344706746049, 218922995834555169026, 354224848179261915075]

回复 支持 反对

使用道具 举报

发表于 2023-2-9 21:56 | 显示全部楼层
还可以再简单一些:
  1. f = [1, 1]
  2. for i in range(2, 100):
  3.     f.append(f[i-1] +f[i-2])
  4. print(f)
复制代码
回复 支持 反对

使用道具 举报

发表于 2023-2-9 22:10 | 显示全部楼层
利用这两个递推式可以实现大数的高速计算
\[F_{2n}=F_n(2F_{n+1}-F_{n})\]
\[F_{2n+1}=F_{n+1}^2+F_n^2\]

点评

ysr
好!还是你的程序厉害,学习了,给你点个赞!  发表于 2023-2-9 23:31
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-10 00:04 | 显示全部楼层
w=0
w=1
w=1
w=2
w=3
w=5
w=8
w=13
w=21
w=34
w=55
w=89
w=144
w=233
w=377
w=610
w=987
w=1597
w=2584
w=4181
w=6765
w=10946
w=17711
w=28657
w=46368
w=75025
w=121393
w=196418
w=317811
w=514229
w=832040
w=1346269
w=2178309
w=3524578
w=5702887
w=9227465
w=14930352
w=24157817
w=39088169
w=63245986
w=102334155
w=165580141
w=267914296
w=433494437
w=701408733
w=1134903170
w=1836311903
w=2971215073
w=4807526976
w=7778742049
w=12586269025
w=20365011074
w=32951280099
w=53316291173
w=86267571272
w=139583862445
w=225851433717
w=365435296162
w=591286729879
w=956722026041
w=1548008755920
w=2504730781961
w=4052739537881
w=6557470319842
w=10610209857723
w=17167680177565
w=27777890035288
w=44945570212853
w=72723460248141
w=117669030460994
w=190392490709135
w=308061521170129
w=498454011879264
VB递推程序得到的兔子数列
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-10 00:08 | 显示全部楼层
'兔子数列程序递推程序
Private Sub Command1_Click()
Dim a, b, c
a = Val(Text1)
b = 0
b1 = 0
b2 = 1
Do While b <= a
b1 = b2
w = Int(w)
s1 = s1 & " w=" & Val(b3) & vbCrLf
b2 = b3
b3 = b1 + b2


b = Val(b + 1)

Loop
Text2 = s1
End Sub
Private Sub Command2_Click()
Text1 = ""
Text2 = ""
End Sub
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-10 00:41 | 显示全部楼层
1 w=0
2 w=1
3 w=1
4 w=2
5 w=3
6 w=5
7 w=8
8 w=13
9 w=21
10 w=34
11 w=55
12 w=89
13 w=144
14 w=233
15 w=377
16 w=610
17 w=987
18 w=1597
19 w=2584
20 w=4181
21 w=6765
22 w=10946
23 w=17711
24 w=28657
25 w=46368
26 w=75025
27 w=121393
28 w=196418
29 w=317811
30 w=514229
31 w=832040
32 w=1346269
33 w=2178309
34 w=3524578
35 w=5702887
36 w=9227465
37 w=14930352
38 w=24157817
39 w=39088169
40 w=63245986
41 w=102334155
42 w=165580141
43 w=267914296
44 w=433494437
45 w=701408733
46 w=1134903170
47 w=1836311903
48 w=2971215073
49 w=4807526976
50 w=7778742049
51 w=12586269025
52 w=20365011074
53 w=32951280099
54 w=53316291173
55 w=86267571272
56 w=139583862445
57 w=225851433717
58 w=365435296162
59 w=591286729879
60 w=956722026041
61 w=1548008755920
62 w=2504730781961
63 w=4052739537881
64 w=6557470319842
65 w=10610209857723
66 w=17167680177565
67 w=27777890035288
68 w=44945570212853
69 w=72723460248141
70 w=117669030460994
71 w=190392490709135
72 w=308061521170129
73 w=498454011879264
74 w=806515533049393
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-14 02:42 , Processed in 0.065430 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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