遞歸-漢諾塔問題 個人理解

首先個人理解的遞歸:函數不斷調用自己,直到某個條件下棧中函數有已知結果,然後從棧底返回得到開始函數的結果。

所以解決遞歸問題:1.總結大問題的最小問題的解決方法  2.最小問題的發生條件

以此問題爲例:

設: H(N,A,C)         %表示把n個盤子從A藉助B挪到C的解決方法

         M(A,B)               %表示將A上第一個盤子挪到B

         最小問題(有已知的最簡單的解): N = 2的過程:M(A,B) --> M(A,C)-->M(B,C)

         普遍問題:H(N,A,C):        H(N-1,A,B)-->M(A,C)-->H(N-1,B,C)

         推論條件(遞歸結束條件N==1):N=1:H(1,A,B) == M(A,B);

         問題解決。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章