汉诺塔通项公式推导

Posted 砂糖橘子君

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汉诺塔通项公式推导相关的知识,希望对你有一定的参考价值。

汉诺塔通项公式证明:

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

证毕。

  

以上是关于汉诺塔通项公式推导的主要内容,如果未能解决你的问题,请参考以下文章

容斥原理推导错排通项公式

斐波那契数列通项公式的推导

生成函数求解一般递推数列通项公式

求卡特兰数通项公式F(n)=c(2n,n)/(n+1)的推导过程。

斐波那契数列的公式是啥

点到平面距离公式的推导