假设有2*n个盘子,如果奇数号盘子在A柱上,偶数号盘子在B柱上,如何解决汉诺塔问题?
如果需要更多信息,请告诉我。
谢谢。
将磁盘1移动到磁盘2上,然后使用经典算法将结果为“正确”的汉诺塔1,2移动到磁盘3上。接着将1,2,3号“正确”的汉诺塔一直移动到4号磁盘上,直到完整的正常汉诺塔形成,然后再使用经典算法移动到目标位置。
编辑1:
示例(不完整)
1 2
3 4
5 6
. . .
1
2
3 4
5 6
. . .
1
2
4
5 6 3
. . .
2
1 4
5 6 3
. . .
1 4 2
5 6 3
. . .
1
4 2
5 6 3
. . .
1
4 2
5 6 3
. . .
这很奇怪,因为最后一步有点优化;我描述的会尝试构建1-2-3-4-6,但我们直接跳到构建1-2-3-4-5。这可能意味着什么。
(2^2 - 1) + (2^3 - 1) + (2^4 - 1) + ... + (2^(2n) - 1)
步骤。然而在你的例子中,你从未将1 2
移动到目标柱和将1 2 3
移动到4
上,这确实会减少步数,但我不确定你如何递归地形成它。 - IVlad