Python遞迴和生成器分別實現斐波那契數列

2021-10-14 00:22:12 字數 1223 閱讀 8058

斐波那契數列,又稱**分割數列,又名兔子數列

通俗的來說,即從該數列中的第三項開始,後面的每乙個數的值等於前兩個數的和。

而我們通過python如何來實現不同長度的斐波那契數列呢?

常見的實現方法有遞迴和生成器。

遞迴的方法效率較低,會出現大量重複計算,這裡以20個斐波那契數列為例。

生成器需要在方法中運用yield,生成器是乙個可迭代物件,可以遍歷獲取元素,在獲取較多斐波那契數列時,相比遞迴效率較高,這裡以100個斐波那契數列為例。

遞迴語法簡單,但執行起來,重複計算多,數值一大,執行時間就變長;

生成器可以遍歷獲取元素,在獲取較多斐波那契數列時,相比遞迴效率較高,執行時間相對更快。

Python遞迴生成器

學習python時,碰到乙個生成器的概念,有點意思,其實很簡單,基本上就是兩種策略 並不難,可以直接參考廖大的教程。這裡主要想說的是乙個程式,from python基礎教程 def yield test nested try for sublist in nested for element in ...

python函式遞迴和生成器

一 什麼是遞迴 如果函式包含了對其自身的呼叫,該函式就是遞迴的。遞迴做為一種演算法在程式語言中廣泛應用,它通常把乙個大型複雜的問題層層轉化為乙個與原問題相似的規模較小的問題來求解,遞迴策略只需少量的程式就可描述出解題過程所需要的多次重複計算,大大地減少了程式的 量。例如,要計算1 9的9位數字的乘積...

遞迴生成器

python基礎教程中 第2版 修訂版 p155頁有這樣一段 def flatten nested try for sublist in nested for element in flatten sublist yield element except typeerror yield nested...