河内塔游戏的起源

河内

河内塔的问题是印度的一个古老传说。创造之神梵天在一座寺庙里留下了三根钻石棒。第一个上面覆盖着64块圆形的金子,最大的一块在底部,另一块比另一块小。庙里的和尚不厌其烦地把它们从一根棍子移到另一根棍子上,规定中间的棍子可以作为帮助,但一次只能移动一根,大的不能放在小的上面。答案就和上面的问题一样。面对一个巨大的数字(移动晶片的次数)184467407370951615,似乎所有的修士都不可能在耗尽生命能量后完成金片的移动。

后来,这个传说演变成了河内塔的游戏:

1.有三根杆子A,B,C,B,C,A杆子上有一些菜。

2.一次移动一个盘子,小的只能叠在大的上面。

3.将所有盘子从A极移到c极。

通过研究发现,汉诺塔的破解很简单,就是按照移动规则,把金块往一个方向移动:

如河内三阶塔的运动:A → C,A → B,C → B,A → C,B → A,B→A,B → C,A → C。

此外,汉诺塔问题也是编程中一个经典的递归问题。