0

我正在尝试解决河内塔的变体。在这种情况下,我有两个塔,高度相同,磁盘大小相同。只要磁盘大小相同或更小,我就可以将它们堆叠在一起。颜色不考虑堆叠能力。

我有三个钉子和两个塔,任务是交换两个塔。

我最初的方法是用交替的颜色建造一座塔,然后用不同的钉子向后移动。

我只是认为这不是最优雅的解决方案。有一个更好的方法吗?

更新:
我以为我很接近解决这个问题,但我没有。我在纸上记录了所有的动作(对于 n=3),它看起来与原始算法非常相似,只是很多动作都完成了两次。不幸的是,我无法将其放入递归算法中。这很令人沮丧。有人有想法吗?

4

1 回答 1

0

有一个网站介绍了河内塔的各种版本。

此外,如果您想递归地执行此操作,您实际上不需要知道会发生什么。您可以递归地尝试所有可用的移动,直到找到解决方案。

于 2014-01-27T21:22:10.437 回答