如何理解汉诺塔的递归?

如何理解汉诺塔的递归?

我做了个动画

三个盘子的汉诺塔你总会吧:

然后你移完发现左边柱子下面又蹦出来一个盘子

好吧, 那就把中间的柱子看成目标柱

然后把最大的移到右边, 然后就和搬三个一模一样了

更多的话也是一样的...

所以

所以说一共就三步

所以写成py代码就是

毫无理解难度啊...

C++那不一样的吗

Mathematica的话...我会直接Fold一个迭代器

迭代器会自己去找合适的缓冲区...

这就是 Frame - Stewart 算法

不过讲道理这么写挺欠揍的...谁™给我 pull 这种代码我直接打上去了2333