(具体数学第2版)递归-Hanoi问题

1|0小碎语

Hanoi是递归的基础,从基础开始,学好递归!

2|0Hanoi的游戏规则

一共有三根杆,开始盘子全在一根杆上,每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,
小盘在上,当全部盘子转移到另一根杆上即成功。

3|0书上的推导


这张图主要观点就是T0 = 0,n = 0;Tn = 2Tn-1+1,n > 0.(T表示n个圆盘时需要的最少操作数需要多少步)

上面推出了递归式,但是和斐波拉契数列一样,当n足够大时,Tn的值就需要很久才能求出来,那如何O(1)的时间内
求出Tn呢,那就是图2所证明的,主要运用了数学归纳法(能与递归式完美地结合)。
那么能在O(1)的时间内求出Tn的值的公式就是Tn = 2n-1。

4|0总结

递归的公式推法重要的两点:一是从容易的状态考虑(这和dp很像),二是引入适当的记号:命名并求解。就如图1,
命名Tn是根据hanoi的规则将n个图盘从一根桩柱移动到另一根桩柱所需要的最小步数。从而显然:T1=1,T2=3.
这里借用一位dalao的话来阐述一下递归和dp的差别:


__EOF__

本文作者ReSakura
本文链接https://www.cnblogs.com/ReSakura/p/16224332.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   ReSakura  阅读(53)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示