递归算法经典实例python-Python实现经典递归算法
遞歸的定義
遞歸就是子程序(或函數)直接調用自己或通過一系列調用語句間接調用自己,是一種描述問題和解決問題的基本方法。
遞歸常與分治思想同時使用,能產生許多高校的算法。遞歸常用來解決結構相似的問題。所謂結構相似,是指構成原問題的子問題與原問題在結構上相似,可以用類似的方法解決。具體地,整個問題的解決,可以分為兩部分:第一部分是一些特殊情況,有直接的解法;第二部分與原問題相似,但比原問題的規模小,并且依賴第一部分的結果。。實際上,遞歸是把一個不能或不好解決的大問題轉化成一個或幾個小問題,再把這些小問題進一步分解成更小的小問題,直至每個小問題都可以直接解決。因此,遞歸有兩個基本要素:
(1) 邊界條件:確定遞歸到何時終止,也稱為遞歸出口。
(2) 遞歸模式:大問題是如何分解為小問題的,也稱為遞歸體。
遞歸函數只有具備了這兩個要素,才能在有限次計算后得出結果。
遞歸算法實例?
整數n的階乘 ?
?階乘的定義如下圖:
?用python實現以上求階乘的算法:
?運行結果:
?斐波拉契數列
斐波拉契數列,是這樣的一個數列:0、1、1、2、3、5、8、13、21、……。
斐波拉契數列的核心思想是: 從第三項起,每一項都等于前兩項的和,即F(N) = F(N - 1) + F(N - 2) (N
>= 2) 并且規定F(0) = 0,F(1) = 1
利用遞歸算法獲得指定項的斐波拉契數列。
??運行結果:
?
Reference :
http://blog.csdn.net/SeeTheWorld518/article/details/47957183
總結
以上是生活随笔為你收集整理的递归算法经典实例python-Python实现经典递归算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux设备驱动程序学习(4) -高级
- 下一篇: Servlet技术简介与编写、编译Ser