解决Python编程问题

斐波那契数列从第三个数字开始,每个数字都是前两个数字的和。

至少有两种方法可以实现。

最常用的方法采用迭代法,其核心思想是

fib(n) =?fib(n-1) +?纤维(n-2)

而在n

def fib(num):如果n & lt2个其他光纤(编号1) +光纤(编号2)

这是一个非常简单的实现。当步骤数较少时,它工作得很好。当步数较大时,会因为秒针迭代而变慢。因此,可以在计算中保存中间值(从1到n-1的步数)以减少计算量:

这种方法在计算10000步数时能保持良好的性能。如果需要多次计算这个序列,可以使用对象来保存这个中间值列表。在下面的代码中,Fibonaci实例只计算尚未计算的步数,这在重复调用时更有优势:

斐波那契类(对象):

....历史记录=[1,1]

....定义缓存(自身,数量):

........而len(self . history)& lt;=数量:

............self . history . append(self . history[-1]+self . history[-2])

........回归?self . history[数字]

if __name__ == '__main__ ':

....fib =?菲波纳奇()

....打印(fib.calc(100))

....print(fib.calc(32))

....打印(fib.calc(10000))