解决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))