證明並推導漢諾塔(河內之塔)問題公式


 
第一次遇到漢諾塔問題時我瞬間就被搞蒙了之后果斷扔下不管了,今天再次遇到這個問題被搞蒙again,在網上搜了好久愣是沒讓我找到證明漢諾塔問題可解和推導公式過程的資料,於是花了幾個小時(誰讓咱不太聰明呢,嘿嘿),最后終於想通了,記錄下來希望對像我一樣不聰明的人有所幫助。

證明可解漢諾塔問題:

我用的是數學歸納法,假設圓盤的個數為n,圓盤編號從上到下依次為1,2,3,4,……n,證明如下

①當 n = 1 時,從 A 移動到 C 顯然能夠完成,設需要移動的次數是a1

    

②當 n = 2 時,由①可知從把 1 號盤子從 A 移動到 B能夠完成(B 和 C 是等效的)此時移動次數為a1

之后把2號盤子移動到C上面此時移動次數為a+ 1。

這時把1號盤子從B移動到C和①是等價的,

移動后總的移動次數是a= a+ 1 + a1

③當n = 3時,由②可知移動成下圖的效果是可以實現的,

此時移動的次數是a2,接着把3號盤子移動到C上面

此時移動的次數是a+ 1,這時把1和2號盤子移動到C上面(移動過程中3號盤子始終不會動)和②等效的,移動完成之后如下

移動的總次數是a= a+ 1 + a2

④當n=4時,由③可知移動成下圖的效果是可以實現的,

此時移動的次數是a3

把4號盤子從A移動到C

此時移動的次數是a+ 1

接下來把123號盤子從B移動到C的過程又和③等效了移動之后如下

移動的總次數是a4 = a+ 1 + a3

假設當n= k時,從A移動到C是可以實現的,那么當n=k+1時,可以移動到A上面只剩k+1號盤子,B上面依次是1,2,3,.....,k號盤字,此時移動次數是ak  

把k+1號盤子移動到C上面,這時移動次數是ak + 1

接下來和n=k時移動過程等效,移動完成后移動總次數是ak+1 =  ak + 1+ ak

 

可以得知移動k+1個盤子需要的次數與移動k個盤子的次數之間的關系是:

ak+1 =  a+ 1+ ak = 2ak + 1

所以ak+1 + 1  = 2*(a+ 1)【這是個等比數列高中學過的】

即a+ 1 =  (a1 +1)* 2n-1 = 2n 因此ak = 2n - 1

至此,證明完畢。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM