← 完整题目索引

PROJECT EULER · #0497

醉汉的汉诺塔

Drunken Tower of Hanoi

仅题目 · 待解原题 ↗

鲍勃非常熟悉著名的数学谜题/游戏"河内塔",它由三个直立的杆和不同尺寸的圆盘组成,圆盘可以滑到任何杆上。游戏开始时,将一堆 n 圆盘按大小降序放置在最左边的杆上。游戏的目标是将所有圆盘从最左边的杆移动到最右边的杆,并给出以下限制:

  1. 一次只能移动一个磁盘。
  2. 有效的移动包括从一堆中取出顶部的圆盘并将其放置到另一堆(或空棒)上。
  3. 任何磁盘都不能放置在较小的磁盘之上。

转向此游戏的变体,考虑一个宽 k 单位(方形瓷砖)的长房间,按升序标记为从 1k。三根棒子放置在abc 格子上,一堆n 圆盘放置在a 格子的棒子上。

鲍勃站在 b 方格开始游戏。他的目标是通过将所有圆盘移动到 c 方格的杆上来玩汉诺塔游戏。然而,鲍勃只有在与相关杆/叠堆位于同一格子上时才能拿起或放下圆盘。

不幸的是,鲍勃也喝醉了。在给定的移动中,鲍勃将以相同的概率向左跌倒一格或向右跌倒一格,除非鲍勃位于房间的任一端,在这种情况下,他只能朝一个方向移动。尽管鲍勃处于醉酒状态,但他仍然能够遵守游戏规则本身,以及选择何时拿起或放下磁盘。

以下动画描绘了 n=3k=7a=2b=4c=6 的示例游戏的侧视图:

0497_hanoi.gif

E(n,k,a,b,c) 为鲍勃在一次最佳游戏中移动的预期方块数。如果磁盘拾取器的数量最小化,游戏就会达到最佳状态。

有趣的是,结果始终是整数。例如,E(2,5,1,3,5)=60E(3,20,4,9,17)=2358

1n10000E(n,10n,3n,6n,9n) 的最后九位数字。

题解待补充

这道题的题目已收录,解题思路、代码和答案将在后续补充。