斐波拉契數列
斐波那契數列(Fibonacci sequence),又稱黃金分割數列、因數學家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數列”,指的是這樣一個數列:1、1、2、3、5、8、13、21、34、……
在數學上,斐波那契數列以如下被以遞推的方法定義:
F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)
Python實現斐波拉契數列:
方法一:用for循環逐個打印出數列的值
def fibonacci1(n): a,b = 0,1 for i in range(n): a,b =b,a+b print a
方法二:用while循環逐個打印出數列的值
def fibonacci2(n): a =0 b = 1 i =0 while i <n: print b a,b = b,a+b i = i+1
方法三:用遞歸的方法,加上for循環,把每次循環產生的新項增加到數列最后,最后一次性輸出list
def fibonacci3(n): lis =[] for i in range(n): if i ==1 or i ==0: lis.append(1) else: lis.append(lis[i-2]+lis[i-1]) print lis
方法四:用遞歸的方法,加上while循環,把每次循環產生的新項增加到數列最后,最后一次性輸出list
def fibonacci4(n): lis=[] i=0 while i<n: if i==0 or i ==1: lis.append(1) else: lis.append((lis[i-2]+lis[i-1])) i = i + 1 print lis
方法五:先用遞歸的方法,定義一個返回第n項值的函數fn,再加上for循環,以此返回全部n項的值。
def fibonacci5(n): def fn(i): if i <2: return 1 else: return (fn(i-2)+fn(i-1)) for i in range(n): print fn(i)