使用X光盘和Y塔缩放迭代的按位算法来解决河内塔

时间:2010-03-27 20:40:52

标签: algorithm stack iteration towers-of-hanoi

我喜欢这个问题中提到的算法:“这是如何工作的?奇怪的河内解决方案塔” How does this work? Weird Towers of Hanoi Solution

有没有什么办法可以扩展河内塔楼的非递归解决方案来使用X盘和Y塔,塔楼代表堆栈?

1 个答案:

答案 0 :(得分:1)

河内塔的迭代解决方案,Y = 3塔和X盘,可以在Wikipedia找到:

对于偶数个磁盘:

  • 在钉子A和B之间进行合法移动
  • 在钉子A和C之间进行合法移动
  • 在钉子B和C之间进行合法移动 重复完成

对于奇数个磁盘:

  • 在钉子A和C之间进行合法移动
  • 在钉子A和B之间进行合法移动
  • 在钉子B和C之间进行合法移动 重复完成

在每种情况下,总共进行2 ^ X-1次移动。 此算法的移动次数仅为minimal for Y=3

此解决方案忽略了其他塔,因此适用于任何Y> = 3和任何X.

  

虽然三钉版有一个   概述的简单递归解决方案   以上,最佳解决方案   河内塔问题与四个钉   (称为Reve的谜题),更不用说了   钉住,仍然是一个悬而未决的问题。这个   是一个简单的好例子,   可以解决问题   更加艰难   略微松动了一个问题   约束

引自Wikipedia