汉诺塔永远只有三步:
设定:三根柱子从左至右依次为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重新编辑了一下,
多谢评论区的朋友指正。