我正在尝试开发一个函数,该函数接受一个值n并输出nth斐波那契数列中的数字。我有一个循环函数,它的工作原理似乎如下:
def fibonacci_v1(n):
a = b = 1
for _ in range(1, n):
a, b = b, a + b
return a
我正在尝试开发一个使用比奈公式的版本,如下所述:
Phi = (1 + math.sqrt(5)) / 2
def fibonacci_v2(n):
c = pow(Phi, n)
return math.floor((c - pow(-1, n) / c) / math.sqrt(5))
这似乎适用于较低的值,n但当输入高于 72 的数字时会中断...我怀疑这与函数的准确性有关,但这里的math.sqrt()文档没有说明其准确性级别...这是我的功能的问题还是有其他问题?math.sqrt
出于测试目的,我使用了这个 for 循环:
for x in range(1, 73):
print(fibonacci_v1(x))
print(fibonacci_v2(x))
一只萌萌小番薯
DIEA
相关分类