漢諾塔通項公式證明

漢諾塔通項公式

漢諾塔問題家傳戶曉,其問題背景不做詳述,此處重點講解在有3根柱子的情況下,漢諾塔問題求解通項公式的推導。

問題背景:有A,B和C三根柱子,開始時n個大小互異的圓盤從小到大疊放在A柱上,現要將所有圓盤從A移到C,在移動過程中始終保持小盤在大盤之上。求移動盤子次數的最小值。
變量設置:n爲圓盤個數,H(k)爲n=k時移動盤子次數的最小值。
遞推公式: H(k)=2H(k-1)+1。
通項公式:H(k)=2^k-1。
證明:
(1)證明遞推公式:首先被移動到C盤的必定是最大的盤子,否則必定違反“在移動過程中始終保持小盤在大盤之上”的規定。既然要將最大盤移動到C,此時最大盤之上必定沒有任何盤子,亦即它獨自在一根柱子上,要做到這點最優做法當然是先把較小的n-1個盤子由A移動到B,剩下最大盤獨自在A。將n-1個盤由A移動到B花費的最少次數爲H(n-1)。此時再將最大盤由A移動到C,此時移動總次數爲H(n-1)+1。接着把剩下的n-1個盤由B移動到C,花費的最少次數當然也是H(n-1)。於是得到總移動次數2H(n-1)+1.證得H(k)=2H(k-1)+1。

(2)推導通項公式。由H(k)=2H(k-1)+1得H(k)+1=2(H(k-1)+1),於是{H(k)+1}是首項爲H(1)=1,公比爲2的等比數列,求得H(k)+1 = 2^k,所以H(k) = 2^k-1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章