python中對遞迴函式的認識

2022-07-31 10:15:14 字數 1088 閱讀 8184

1,遞迴的定義

遞迴(recursion algorithm,遞迴演算法)是指通過重複將問題分解為同類的子問題而解決問題的辦法。計算理論證明遞迴的作用可以完全取代迴圈。

重複:凡是通過迴圈語句可實現的,都可以通過遞迴來實現。

將問題分解為同類的子問題:如持續迴圈的運算操作、持續迴圈的判斷操作,它們的每次迴圈都是同樣的乙個「動作」,這個「動作」就是乙個子問題的。

利用函式實現遞迴演算法的過程就是遞迴函式。是通過自己呼叫自己來實現遞迴演算法。

2,遞迴函式在記憶體中的執行原理

遞迴一次,就在記憶體中開闢乙個新的位址空間,記錄遞迴過程狀態,一直遞迴分解到最小範圍,最後得出要麼找到對應的值,要麼返回找不到的結果。

通俗的講,其實是在呼叫棧的進棧、出棧操作過程。每遞迴呼叫自己一次,就進棧一次,並在棧列表裡記錄呼叫的內容;每返回一次,就是出棧彈出值的過程,並把值返回到上乙個棧列表裡,最後返回所求最終答案。

3,舉例

1

#定義函式

2def

recursion_sum(num):

3if num==1:

4return

num5 tt=recursion_sum(num-1)+num

6print('

第%d次遞迴

'%(num))

7print('

'%(tt,id(tt)))

8returntt9

#呼叫函式

10print(recursion_sum(5)

執行結果

遞迴函式在記憶體中以棧的方法進行進棧、出棧操作圖如下:

Python 匿名函式和遞迴函式的簡單認識

python有兩類特殊的函式 匿名函式和遞迴函式。匿名函式是指沒有函式名的簡單函式,只可以包含乙個簡單函式,不允許包含其他複雜的語句。表示式的結果是函式的返回值。遞迴函式是指直接或間接呼叫函式本身的函式。一,匿名函式 1 匿名函式的定義 匿名函式也稱為lambda函式,定義格式為 lambda 引數...

對遞迴和迭代的認識

遞迴 程式呼叫自身的程式設計技巧稱為遞迴,就是函式重複的自己呼叫自己。在使用遞迴時,必須有乙個明確的遞迴結束條件,稱為遞迴出口.迭代 利用變數的原值推算出變數的乙個新值.如果遞迴是自己呼叫自己的話,迭代就是a不停的呼叫b。遞迴的優點 1 大問題化為小問題,可以極大的減少 量 2 用有限的語句來定義物...

python中的遞迴函式

一 遞迴函式的特性 二 遞迴函式的使用示例 1.斐波拉契數列的實現 1.1 遞迴版本 1 遞迴版 2def fibo2 n,first num 0,second num 1 3if n 2 4return second num 5elif n 1 6return first num78 return...