怎么理解汉罗塔问题_如何理解汉诺塔的递归?

汉诺塔永远只有三步:

设定:三根柱子从左至右依次为A、B、C,

五颗串珠从小到大依次为1到5

……………大象&冰箱原理……………

图中是最常见的五层汉诺塔,

其实几层都是一样,这里设为n,

冰箱门永远是汉诺塔上面的m=n-1层。

那么问题来了,怎样把冰箱门打开?

即:怎样把图中的1至4号串珠从A柱移动到B柱?

这又变成了一道m层汉诺塔的问题(m=n-1)。

你可以继续用把大象装冰箱分几步的思路

去考虑m层汉诺塔的解法。

推导下去最终就得到了一个两层汉诺塔该怎么移动的问题,

这个相信你闭着眼也知道该怎么搞了。

【不想看公式的话,往下翻有实操技巧】

……………公式解释……………

关于汉诺塔的公式:

可以这样理解:

其中

代表把冰箱门打开又合上,即完成两次n-1层汉诺塔的过程,

+1 代表移动汉诺塔最下面一层,即把大象装冰箱的过程。

冰箱门打开或者合上需要的步数都是一样的,

都是完成一个m=n-1层汉诺塔的过程。

……………实操技巧……………

实际操作的时候有一个规律:奇偶相关性

思考一下:怎样成为王健林那样的有钱人?

需要设定一个阶段性目标:先挣它一个亿。

额,这里其实只是想引出阶段性目标的概念。

比如,

如果你想把5号串珠移动到C柱上,

那你的阶段性目标是:先把3号串珠移动到C柱上。

那怎样把3号串珠移动到C柱上呢?

你的阶段性目标是:先把1号串珠移动到C柱上。

5是奇数,那么阶段性目标就是比当前目标小2的下一个奇数。

5→3→1,这样第一步该怎么走就确定了。

偶数也是同样的道理,6层汉诺塔的推理就是6→4→2。

总之,

将“大象&冰箱理论”和“阶段性目标/奇偶相关性”结合起来,

汉诺塔问题将会变得非常简单。

PS:

配图是临时找了个页游截的图,

只是为了更加直观。

之前随手写的答案,公式确实有问题,

使用LaTeX重新编辑了一下,

多谢评论区的朋友指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值