这是原来河内塔问题的变种。适用相同的规则,但不是只有一堆n个磁盘,而是有两个。左边的一堆红色圆盘和右边的另一堆紫色圆盘。最终配置应为左侧的紫色和右侧的红色。共有3个极点。
我无法理解/创建解决此问题的算法的伪代码。请帮忙。
答案 0 :(得分:2)
您提出的问题通常无法解决。根据{{3}},最琐碎的多堆栈游戏有两个堆栈和四个极点,一般来说,堆栈/桩的数量是堆栈的两倍。
在2个堆叠x 3极的情况下,你可以很快看到n> 1你不能走得很远。最小的两个光盘占据两个或一个极的顶部,因此你永远不能更换第二小的两个光盘,因为它总是需要一个临时的极。
答案 1 :(得分:0)
由于这是作业,所以给你答案是错误的,我建议你以图形方式解决河内塔问题。
然后,添加修改,并查看原始解决方案如何与新更改一起使用。
您应该看到原始文件可能会失败的位置,但在以图形方式查看时更容易进行修改。
如果您选择一种易于使用图形解决方案的语言,那么您可以非常快速地完成此操作。
例如,GWT可能是一个不错的选择,或Rails,尽管TCL / TK也很容易。