(具体数学第2版)递归-Hanoi问题
作者:互联网
小碎语
Hanoi是递归的基础,从基础开始,学好递归!
Hanoi的游戏规则
一共有三根杆,开始盘子全在一根杆上,每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,
小盘在上,当全部盘子转移到另一根杆上即成功。
书上的推导
这张图主要观点就是T0 = 0,n = 0;Tn = 2Tn-1+1,n > 0.(T表示n个圆盘时需要的最少操作数需要多少步)
上面推出了递归式,但是和斐波拉契数列一样,当n足够大时,Tn的值就需要很久才能求出来,那如何O(1)的时间内
求出Tn呢,那就是图2所证明的,主要运用了数学归纳法(能与递归式完美地结合)。
那么能在O(1)的时间内求出Tn的值的公式就是Tn = 2n-1。
总结
递归的公式推法重要的两点:一是从容易的状态考虑(这和dp很像),二是引入适当的记号:命名并求解。就如图1,
命名Tn是根据hanoi的规则将n个图盘从一根桩柱移动到另一根桩柱所需要的最小步数。从而显然:T1=1,T2=3.
标签:递归,Hanoi,Tn,数学,杆上,一根,盘子 来源: https://www.cnblogs.com/ReSakura/p/16224332.html