汉诺塔通项公式推导

汉诺塔通项公式证明:

  设三个塔分别为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

证毕。

  

转载于:https://www.cnblogs.com/dqsBK/p/5359853.html

你可能感兴趣的:(汉诺塔通项公式推导)