【发布时间】:2017-01-03 19:12:25
【问题描述】:
我目前正在实现这个简单的代码,试图使用 Python 2.7 找到斐波那契数列的第 n 个元素:
import numpy as np
def fib(n):
F = np.empty(n+2)
F[1] = 1
F[0] = 0
for i in range(2,n+1):
F[i]=F[i-1]+F[i-2]
return int(F[n])
这适用于 F fib(100) 给了我 14472334024676220。我认为这可能是由 python 处理整数的方式引起的,但我不知道究竟是什么问题。非常感谢任何帮助!
【问题讨论】:
-
为什么在这里使用
numpy?这是没有意义的,并且可能只会减慢您的速度。我怀疑这是使用np.empty和int处理小变化的方式引起的问题。 -
如果您只返回结果,为什么还要将它们存储在列表中?您可以轻松地跟踪函数中的两个数字。
-
我最近才开始使用 numpy(和 python 相关的..)并且想用它来实现我在过去几天学到的一些命令。应该坚持基本命令。不过,谢谢。
-
@RandomDavis:谢谢,但我一般都在玩斐波那契数列,可能还想返回整个数列 F。但你的建议对于上述函数的目的更有意义,谢谢!