河内塔(双塔)的变化

时间:2014-01-27 20:13:59

标签: algorithm recursion towers-of-hanoi

我正在努力解决河内塔的变异。在这种情况下,我有两个塔,相同的高度和磁盘具有相同的大小。只要磁盘尺寸相同或更小,我就可以将磁盘堆叠在一起。颜色不会影响堆叠功能。

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

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

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

更新
我以为我非常接近搞清楚了,但我不是。我在纸上有所有的移动(对于n = 3)并且它看起来与原始算法非常相似,只是很多移动都进行了两次。不幸的是我无法将其放入递归算法中。这非常令人沮丧。有人有想法吗?

1 个答案:

答案 0 :(得分:0)

有一个网站可以处理Tower of Hanoi的各种版本。

另外,如果你想以递归的方式做这件事,你实际上并不需要知道会发生什么。您可以递归尝试所有可用的移动,直到找到解决方案。