具體數學學習筆記——第一章

Handle發表於2013-05-30

第一章:遞迴問題

熱身題

[1.2] 漢諾塔問題,將圓盤從A移動到C,但是必須經過B,求最短的移動序列。

  1. 假設將圓盤從A移動到C需要T(n)次移動
  2. 當只有一個圓盤的時候,明顯有T(1)=2 (先移動到B再移動到C,故這裡需要2步)。
  3. 可以手工計算出當有2個圓盤的時候需要進行8次移動,好吧,我承認當有3個圓盤的時候我手工算起來已經很累的,無法想象有4個圓盤的時候計算量會有多少。
  4. 由於手工計算量實在太大,我們需要考慮的是是不是有其他的方法可以讓我們把問題簡化,或者說抽象話。通過歸納法我們知道可以通過研究T(n)和T(n-1)之間的關係來找到規律。為了更好的理解,我們畫個圖先。圖片1
  5. 當需要移動第n個圓盤的時候那麼n-1一個圓盤是必須在C柱上的圖1(因為第n個圓盤必須先移動到B柱),那麼很容易就看出來在移動第n個圓盤之前已經移動了T(n-1)步。
  6. 從圖上我們可以看出來T(n) = T(n-1) + 1 + T(n-1) + 1 + T(n-1) = 3T(n-1)+2
  7. 等式2邊加1我們可以得到 T(n) = 3(T(n-1) + 1) - 1,到這裡我們已經離答案很近了,讓我們繼續帶入T(n-2)看一下會有什麼變化
  8. T(n) = 3(3(T(n-2) + 1 ) -1 + 1) - 1整理一下我們可以得到 $$T(n) = {3}^{2}(T(n-2)+1)-1$$,那麼繼續我們就可以得到$$T(n) = {3}^{n-1}(T(1)+1)-1$$ 由於T(1)=2代入上以後為$$T(n)={3}^{n-1}(2+1)-1 = {3}^{n}-1$$
  9. 所以本題的解為$$T(n)={3}^{n}-1$$

相關文章