漢諾塔通項公式推導


漢諾塔通項公式證明:

  設三個塔分別為A、B、C。並設當A塔初始有n個盤子的時候,轉移到C塔需要用T(n)步。

  首先,有如下規律:

  T(0) = 0 (當沒有盤子的時候當然為0)

  T(1) = 1 

  T(2) = 3

  T(3) = 7

  .....

  T(n) = T(n - 1) + 1 + T(n - 1) = 2* T(n - 1) + 1

  為什么T(n) = 2 * T(n -1 )+ 1 呢?

  很容易可以想到,當n = n - 1 的時候,

  (1)從A塔將所有盤子移動到C塔需要的步數是 T(n - 1)。

    (2)如果從A到C移動的步數是T(n - 1),那么從A移動到B也需要T(n - 1)

  那么當n = n 時:

  (1)首先將A塔的全部盤子移動到B塔,需要T(n  -1 )步。

  (2)將A塔的最后一個盤子移動到C塔,需要1步

  (3)將B塔的全部盤子移動到C塔,需要T( n  - 1 )步。

  最終結果需要 2* T(n  - 1)+ 1 步。

  所以T(n) = 2 * T( n  - 1 ) + 1 

  那么通項公式是什么呢?該怎么證明呢?

  很簡單~

  令等式左右兩端同時加1,有:

  T(n) + 1 = 2 * (T(n - 1) + 1)

  設T(n) + 1 = S(n)

  那么:S(n) = 2 *S(n - 1)

  並且當n = 1 的時候,S(1) = 1;

  那么S(n) = 2 ^ n

  所以:  T(n) + 1 = S(n) = 2 ^ n

  即     T(n) = 2 ^ n - 1

證畢。

  


免責聲明!

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



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