【发布时间】:2014-06-28 13:39:45
【问题描述】:
我正在开发一个 python 程序来计算斐波那契数列中的数字。这是我的代码:
import math
def F(n):
return ((1+math.sqrt(5))**n-(1-math.sqrt(5))**n)/(2**n*math.sqrt(5))
def fib(n):
for i in range(n):
print F(i)
我的代码使用这个公式来查找斐波那契数列中的第 N 个数字:
这可以计算斐波那契数列中的许多数字,但我确实遇到了溢出错误。
如何改进此代码并防止溢出错误?
注意:我使用的是 python 2.7。
【问题讨论】:
-
您可以访问
numpy吗?该库具有 64 位浮点类型 (numpy.float64)。它不会防止溢出,但会增加到达那里的上限。我了解一些编译器支持numpy.float128。 -
@SethMMorton:Python
floats 已经是 64 位的了。
标签: python optimization sequence fibonacci integer-overflow