def Fibonacci(N):
if(N<2):
return N
else:
return Fibonacci(N-1)+ Fibonacci(N-2)
def Fibonacci2(N):
sqrt5 = 5**0.5
fibnN = ((1+sqrt5)/2)**N-((1-sqrt5)/2)**N
return round(fibnN/sqrt5)
value = [20,25,30,35,40]
import time
if __name__ == '__main__':
for count in value:
s = time.time()
for i in range(count):
print(Fibonacci2(i),end=" ")
print("\r\n花费时间为: ",(time.time() - s), "s")
"""
使用Fibonacci函数
输出:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181
花费时间为: 0.004997968673706055 s
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368
花费时间为: 0.056983232498168945 s
0 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
花费时间为: 0.6223404407501221 s
0 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
花费时间为: 6.873619079589844 s
0 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
花费时间为: 75.94436860084534 s
"""
"""
使用Fibonacci2函数
输出:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181
花费时间为: 0.0 s
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368
花费时间为: 0.0 s
0 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
花费时间为: 0.0 s
0 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
花费时间为: 0.0 s
0 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
花费时间为: 0.00099945068359375 s
"""