河内的塔变异伪代码

时间:2009-09-07 01:45:30

标签: algorithm towers-of-hanoi

这是原来河内塔问题的变种。适用相同的规则,但不是只有一堆n个磁盘,而是有两个。左边的一堆红色圆盘和右边的另一堆紫色圆盘。最终配置应为左侧的紫色和右侧的红色。共有3个极点。

我无法理解/创建解决此问题的算法的伪代码。请帮忙。

2 个答案:

答案 0 :(得分:2)

您提出的问题通常无法解决。根据{{​​3}},最琐碎的多堆栈游戏有两个堆栈和四个极点,一般来说,堆栈/桩的数量是堆栈的两倍。

在2个堆叠x 3极的情况下,你可以很快看到n> 1你不能走得很远。最小的两个光盘占据两个或一个极的顶部,因此你永远不能更换第二小的两个光盘,因为它总是需要一个临时的极。

答案 1 :(得分:0)

由于这是作业,所以给你答案是错误的,我建议你以图形方式解决河内塔问题。

然后,添加修改,并查看原始解决方案如何与新更改一起使用。

您应该看到原始文件可能会失败的位置,但在以图形方式查看时更容易进行修改。

如果您选择一种易于使用图形解决方案的语言,那么您可以非常快速地完成此操作。

例如,GWT可能是一个不错的选择,或Rails,尽管TCL / TK也很容易。