具體數學學習筆記——第一章
第一章:遞迴問題
熱身題
[1.2] 漢諾塔問題,將圓盤從A移動到C,但是必須經過B,求最短的移動序列。
- 假設將圓盤從A移動到C需要T(n)次移動
- 當只有一個圓盤的時候,明顯有T(1)=2 (先移動到B再移動到C,故這裡需要2步)。
- 可以手工計算出當有2個圓盤的時候需要進行8次移動,好吧,我承認當有3個圓盤的時候我手工算起來已經很累的,無法想象有4個圓盤的時候計算量會有多少。
- 由於手工計算量實在太大,我們需要考慮的是是不是有其他的方法可以讓我們把問題簡化,或者說抽象話。通過歸納法我們知道可以通過研究T(n)和T(n-1)之間的關係來找到規律。為了更好的理解,我們畫個圖先。
- 當需要移動第n個圓盤的時候那麼n-1一個圓盤是必須在C柱上的圖1(因為第n個圓盤必須先移動到B柱),那麼很容易就看出來在移動第n個圓盤之前已經移動了T(n-1)步。
- 從圖上我們可以看出來T(n) = T(n-1) + 1 + T(n-1) + 1 + T(n-1) = 3T(n-1)+2
- 等式2邊加1我們可以得到 T(n) = 3(T(n-1) + 1) - 1,到這裡我們已經離答案很近了,讓我們繼續帶入T(n-2)看一下會有什麼變化
- T(n) = 3(3(T(n-2) + 1 ) -1 + 1) - 1整理一下我們可以得到 ,那麼繼續我們就可以得到 由於T(1)=2代入上以後為
- 所以本題的解為
相關文章
- 演算法學習筆記(40): 具體數學演算法筆記
- 《具體數學》讀書筆記筆記
- 【學習筆記】數學筆記
- GIT學習筆記——第一章Git筆記
- 【學習筆記】組合數學筆記
- 數學證明 學習筆記筆記
- 高等數學學習筆記(一)筆記
- 高等數學學習筆記(二)筆記
- 組合數學學習筆記筆記
- Java基礎學習筆記 第一章Java筆記
- 學習筆記:數位dp筆記
- JavaScript學習筆記---數值JavaScript筆記
- 數位DP 學習筆記筆記
- 四元數 學習筆記筆記
- KLC 數點學習筆記筆記
- 【學習筆記】數位DP筆記
- Java_EE企業級開發學習筆記——spring學習筆記第一章Java筆記Spring
- 數論學習筆記 (2):質數筆記
- Win32學習筆記 第一章 (轉)Win32筆記
- 第一章 遞迴問題 學習筆記遞迴筆記
- numpy的學習筆記\pandas學習筆記筆記
- Python學習筆記 - 變數Python筆記變數
- javascript學習筆記,二、變數JavaScript筆記變數
- 分數規劃學習筆記筆記
- 數論學習筆記 (1):整除筆記
- 集合冪級數學習筆記筆記
- 學習筆記:數論分塊筆記
- 今天專門為了學習《具體數學》開了部落格
- 強化學習-學習筆記13 | 多智慧體強化學習強化學習筆記智慧體
- GO 學習筆記->結構體Go筆記結構體
- HexMap學習筆記(八)——水體筆記
- 【軟體測試】學習筆記筆記
- 數學筆記筆記
- vue學習筆記(慎入,內容僅供學習時查詢某些函式具體起到什麼作用)Vue筆記函式
- IT學習筆記筆記
- 學習筆記筆記
- awk學習筆記(15)-數學函式及隨機數筆記函式隨機
- 《JAVA學習指南》學習筆記Java筆記