【发布时间】:2011-02-01 14:48:37
【问题描述】:
我喜欢这个问题中提到的算法:“这是如何工作的?河内奇怪的塔解决方案” How does this work? Weird Towers of Hanoi Solution
有没有办法扩展河内塔的非递归解决方案以使用 X 磁盘和 Y 塔,塔表示为堆栈?
【问题讨论】:
-
怀疑。你如何用 X 盘和 Y 塔解决河内塔?据我所知,没有经过验证的算法可以用最少的移动次数来解决这个问题。除非您可能不在乎最小的移动次数?
-
@IVlad:如果您不关心最小的移动次数,请忽略除 3 个极点之外的所有极点。工作完成:-)
-
@Steve Jessop - 真的 :)。 @Robb - 你最好的开始可能是这里描述的 Frame-Stewart 算法:en.wikipedia.org/wiki/Tower_of_Hanoi - 不知道该算法是否真的是最优的,但很可能是。我不知道它究竟如何适应打印每一步的非递归解决方案,但其他人可能会弄清楚并希望发布他们的发现:)。
-
解 X 盘很容易,你只需要知道它是偶数还是奇数。 Y 塔是一个棘手的问题。
-
对于 > 3 个磁盘来说,“最佳”解决方案并不为人所知 [尽管 Frame Stewart 猜想给出了一些关于如何解决它的提示],并且位解决方案利用了 3 种情况下的假设。跨度>
标签: algorithm stack iteration towers-of-hanoi