斐波那契數列,又稱黃金分割數列、因數學家列昂納多·斐波那契以兔子繁殖為例子而引入,故又稱為“兔子數列”,指的是這樣一個數列:1、1、2、3、5、8、13、21、34、…在數學上,斐波納契數列以遞歸的方法定義。
對於學習程式語言的小夥伴們來說,斐波那契數列將會是一個最經典的函數之一,今天用Python來給大家講講這個經典的函數怎麼簡單粗暴的實作。
實現之前呢,先跟大家介紹一下斐波那契數列的原理,原題是一個兔子繁殖問題,簡單的講就是後一項等於前兩項之和,即f(x) =f(x-1) f(x-2),第一項可為0,亦可為1。
下面介紹兩種常用的方式,或許沒別人寫的那麼簡潔,請見諒哈!
第一種:非遞歸方式,用的是索引和while循環結合
## 從零開始,輸出前n項斐波那契數列
# 定義斐波那契函數
def fibo(x):
#初始化前兩項
m=0
n=1
# 用list儲存
l=[0,1]
# 設定初始項
i=2
# 用while迴圈進行運算,原理:後一項等於前兩項之和
while i
n=m n
# 將n加入list
l.append(n)
# 透過索引將list的前一項賦值給m
m =l[i-1]
#透過自加來達到退出迴圈的條件
i=i 1
#列印出list
print(l)
# 呼叫函數
fibo(10)
第二種:遞歸方式實現,這種就是經典模型了
# 從零開始,輸出第n項斐波那契數列
def fibo(x): if x==1: return 0 elif x==2: return 1 elif x>2: return fibo(x-1)+fibo(x-2) else: print("输入错误,请重新输入!")
推薦教程: 《Python教程》
以上是用python函數寫斐波那契數列的詳細內容。更多資訊請關注PHP中文網其他相關文章!