在電影院裡面如果你想知道自己在第幾排坐著。電影院裡面黑,電影票又不在你手裡。怎麼解決呢?你可以問問前面乙個人是第幾排,然後加1,就是知道你在第幾排。前面那個人可以問他前面的那個人,依次類推,直到第一排那個人,他不用問別人,知道自己是第一排。然後再把這個數一排排傳回來,直到你前面的那個人告訴你他在第幾排,你的問題就解決了。
不斷縮小問題規模,去求解的過程叫做「遞」,把答案一步步傳回來的過程叫做「歸」。
這個問題的遞推公式是:
f (n
)=f(
n−1)
+1
f(n)=f(n-1)+1
f(n)=f
(n−1
)+1f(1
)=
1f(1)=1
f(1)=1
有了遞推公式就很容易寫**了。
例如菲波那切數列問題f(n)分解為f(n-1)和f(n-2),兩個子問題。上面的例子中f(n)分解為f(n-1),乙個子問題。
1 找到遞推公式
2 找到終止條件
演算法實驗三 遞迴與分治
一 實驗目的 理解遞迴演算法的思想和遞迴程式的執行過程,並能熟練編寫遞迴程式。掌握分治演算法的思想,對給定的問題能設計出分治演算法予以解決。二 實驗環境 vc6.0 三 實驗內容 無窮數列1,1,2,3,5,8,13,21,34,55,稱為fibonacci數列。它可以遞迴地定義為 第n個fibon...
演算法與資料結構 三 遞迴
在方法的內部呼叫該方法本身的程式設計方式 如圖所示,四個函式可以看做都是乙個方法,只不過為了區分流程畫成了四個,資料從第乙個入口進入該方法,符合一定條件之後反覆呼叫本身,直到符合條件不需要呼叫本身時將結果一層一層返回,直到第一層輸出 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda ...
演算法 遞迴演算法
遞迴演算法的概念,就是通過不斷地呼叫自身,最終達到解決問題的目的。遞迴有兩個點需要注意 1.要不斷的呼叫自身 2.這個遞迴要有出口,不能成為死迴圈 看下面的例子。很多介紹遞迴演算法的,都會用遞迴來做乙個題目 計算乙個數的階層。例如 計算5的階層,5 5 x 4 x 3 x 2 x 1 用遞迴來實現 ...