斐波那契數(shù),亦稱之為斐波那契數(shù)列(意大利語: Successione di Fibonacci),又稱黃金分割數(shù)列、費波那西數(shù)列、費波拿契數(shù)、費氏數(shù)列,指的是這樣一個數(shù)列:0、1、1、2、3、5、8、13、21、……在數(shù)學上,斐波納契數(shù)列以如下被以遞歸的方法定義:F0=0,F(xiàn)1=1,F(xiàn)n=Fn-1+Fn-2(n>=2,n∈N*),用文字來說,就是斐波那契數(shù)列列由 0 和 1 開始,之后的斐波那契數(shù)列系數(shù)就由之前的兩數(shù)相加。
1,通過遞歸的方式實現(xiàn),效率很低
In [25]: def fib(n): ...: if n == 0: ...: return 0 ...: if n ==1: ...: return 1 ...: else: ...: return fib(n-1) + fib(n-2) ...: In [26]: fib(5)Out[26]: 5In [27]: fib(10)Out[27]: 55
2,通過for 循環(huán)的方式實現(xiàn)
In [15]: def fib(n): ...: a,b = 0,1 ...: for i in range(n): ...: a,b = b,a+b ...: return a
In [22]: def fib(n): ...: a,b = 0,1 ...: lst = [] ...: for i in range(n): ...: lst.append(a) ...: a,b = b,a+b ...: return lst
3,通過生成器的方式實現(xiàn)
In [7]: def fib(n): ...: a,b = 0,1 ...: for i in range(n): ...: yield a ...: a,b = b,a+b
In [9]: for x in fib(10): ...: PRint(x) ...: 0112358132134
新聞熱點
疑難解答