我正在为类似于河内塔任务的任务寻找解决方案,但这与河内不同,因为磁盘不受大小限制。我正在创建的伦敦塔任务有 8 个磁盘,而不是传统的 3 个或 5 个(如维基百科链接所示)。我使用的PEBL软件“主要用 C++ 编程(尽管您不需要了解 C++ 即可使用 PEBL),但也使用 flex 和 bison(lex 和 yacc 的 GNU 版本)来处理解析。”
以下是该任务的实际效果视频:http ://www.youtube.com/watch?v=IiBJ94HRpeM&noredirect=1
*每个磁盘都是一个数字。例如,蓝盘=1,红盘=2,等等。
1 \
2 ----\
3 ----/ 3 1
4 5 / 2 4 5
========= =========
左侧由您必须移动的磁盘组成,以匹配右侧。有3列。
因此,如果我用 8 个磁盘制作它,我会创建一个如下所示的试用版:
1 \
2 ----\ 7 8
6 3 8 ----/ 3 6 1
7 4 5 / 2 4 5
========= =========
我如何确定左侧看起来像右侧所需的最小移动量是多少?我不需要使用 PEBL 来编写代码,但我需要知道,因为我正在计算一个人每次试验的最低值有多接近。