python 通過遞迴函式解決斐波那契數列

2021-08-21 17:40:25 字數 587 閱讀 4315

斐波那契數列是義大利數學家斐波那契發現的,隨著科學的進步人們發現生活中很多都存在著斐波那契數列的身影,向日葵的種子排列,樹木的枝幹按照某種層次也能發現它的身影,,,而且他們的沒相鄰兩項的比值都不斷的接近0.618這個數字,0,618也被人稱為**分割比,可見在自然選擇中這種高效而優美的數列也順其自然的獲勝,我們今天就用python中的遞迴函式來解決斐波那契數列。

演算法思想:設斐波那契書數列f ,則f=1,1,2,3,5,8.....    可見從第三位開始每一位都為前兩項的和 任意的n=(n-1)+(n-2)

演算法實現:

def x (n):

if n==0:

return false

elif n==1:

return 1

return x(n-2)+x(n-1) #內部函式呼叫自己

print(x())

雖然是個簡短的式子但運用到了演算法思想中的遞迴思想——函式內部呼叫函式本身,函式通過不斷呼叫函式本身從而達到迴圈的效果,遞迴的程式往往也可以用迴圈來實現,但較之於遞迴的簡潔,遞迴函式往往會占用很多系統分配的記憶體,從而報錯,或者由於終止命令書寫不正確導致程式崩潰,一般使用較少,但仍是個很重要的思想。

Python 遞迴函式實現斐波那契數列

1 什麼是斐波那契數列?斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家萊昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 0 1 1 2 3 5 8 13 21 34 斐波那契數列由 0 和 1 ...

python 遞迴 斐波那契

什麼是遞迴演算法?函式自己呼叫自己本身 本質上return返回的時候,總是把乙個引數傳入到自己函式本身,讓函式反覆呼叫下去 遞迴有何特點?必有乙個結束條件 沒有結束條件,遞迴就沒有任何意義,python中預設只能999層遞迴 遞迴過多棧溢位,報錯 效率不高 相對而言,對於正向遞迴,遞迴次數和迴圈次數...

python 列印斐波那契數列 使用遞迴函式版本

使用python列印出斐波那契數列的過程中需要特別注意的是數列中的值有前兩項相加而來,所以需要兩項同時賦值,不能分開賦值,分開賦值會導致數列變為等比數列 usr bin python coding utf 8 def fib n a 0b 1 for i in range n 1 a,b b,a b...