‹ 返回工坊合集
数学游戏工坊 · 汉诺塔篇 | 九章格数学 PhiloMath

金盘梵塔

神庙里的金盘日夜不歇:一次移一片,小盘上不能放大盘,把整塔从甲柱搬到目标柱。三柱是经典,四柱藏玄机——您能走出「最优步数」吗?
模式
三柱
圆盘数
4
已走步数
0
理论最少
15

🛕 梵塔挑战

选柱数与圆盘数 → 点一根柱子拿起顶盘,再点目标柱放下(大压小会被拒绝)。把全塔移到最右边的目标柱,步数等于「理论最少」就是最优解!
① 几根柱子?
② 几个圆盘?
点柱子开始移盘吧!
对局状态⛩️ 挑战中
目标搬到 丙 柱
理论最少15 步
本机纪录—
🕯️ 住持的规矩

🎬 算法演示 · 看最优解一步步走

选好柱数与盘数,工坊按最优算法(三柱递归 / 四柱 Frame–Stewart)生成完整移盘序列,一步步演示。仔细看:三柱的解法里藏着「把 n−1 盘先挪开」的递归节奏。
速度
点「演示」开始。
演示进度0 / 0
序列总步数—
等于理论最少?—
🧭 三柱解法的口诀
要把 n 盘从甲搬到丙:先把上面 n−1 盘借助丙搬到乙,把最大盘搬到丙,再把 n−1 盘借助甲搬到丙。大事化小,小事化了——这就是递归。
🧭 四柱的算计
先挑 t 个盘用四根柱挪到缓冲柱,再把底下 n−t 盘用三根柱搬到目标柱,最后把 t 个盘挪回来。t 取多少最省?挨个试,取最小——这就是 Frame–Stewart 算法。

📖 梵塔传说 · 汉诺塔的历史

一个流传一百多年的数学玩具,背后接着一座神庙的古老传说。

贝拿勒斯的神庙传说。相传大梵天创造世界时,在神庙里立了三根金刚石柱,第一根柱子上从下往上、由大到小摞着 64 片黄金圆盘。僧侣们日夜不息地移盘:一次只能移动一片,小盘上不能放大盘,把整塔搬到另一根柱子上。传说当 64 片金盘全部移完之时,世界将在一声霹雳中化为尘埃。

「当 64 片金盘归位,梵塔、庙宇和众生,都将同归于尽。」——传说无从考证,但算法可以算出「末日」的时刻。

末日还有多久?按最优走法,移完 n 个盘需要 2ⁿ−1 步。64 个盘就是 2⁶⁴−1 ≈ 1.84×10¹⁹ 步——就算僧侣一秒移一片、片刻不停,也要 5800 多亿年才能移完,是宇宙现今年龄(约 138 亿年)的 40 多倍。世界末日?排在宇宙热寂后面很远很远。

1883 年,玩具登场。法国数学家爱德华·卢卡斯(Édouard Lucas)发明了这款玩具,并配上了上面那个印度传说——「汉诺塔」(Tower of Hanoi)之名由此传开。他把难题装进木头玩具里卖到世界各地,也让「递归」第一次成为千家万户手里的游戏。今天的算法教材几乎无一例外地从它讲起:数据结构的递归、算法设计的分治,都拿它当第一课。

一百多年的接力。三柱汉诺塔在卢卡斯手里已有完美解答;但只多加一根柱子,问题陡然变难——四柱汉诺塔的最优解 1941 年由 Frame 与 Stewart 给出算法猜想,此后数学家们接力了七十多年,直到 2014 年才被严格证明其最优性。一座小小的塔,牵动了三个世纪的数学(详见下一页「算法故事」)。

🧭 算法故事 · 从 2ⁿ−1 到 Frame–Stewart

这一页讲三个故事:一个递归、一次化归、一桩 73 年才结案的悬案。

故事一:拆到底的智慧。要把 n 个盘从甲搬到丙(三柱),想最大的一盘:它必须独自搬到丙——所以先把上面 n−1 盘让到乙柱,再搬最大盘,最后把 n−1 盘从乙让到丙。设 f(n) 为最少步数,就有递推式:

f(n) = 2·f(n−1) + 1,f(1) = 1  ⇒  f(n) = 2ⁿ−1

两边同除以 2ⁿ(或构造相邻差),正好落回课本里的等比数列:f(n)+1 = 2·(f(n−1)+1),是首项为 2、公比为 2 的等比数列。一盘玩具,把「递归」与「数列」串成了一条线。

盘数 n1234567810
三柱最少步1371531631272551023
四柱最少步13591317253349

故事二:多一根柱子的化归。四柱汉诺塔只多一根柱,难了整整一个量级。1941 年,Frame 与 Stewart 先后提出同一套算法,如今叫 Frame–Stewart 算法,核心是一步漂亮的化归——把四柱问题拆回三柱:

① 挑上面 t 个盘,用四根柱挪到缓冲柱(四柱递归);
② 把底下 n−t 个盘用三根柱搬到目标柱(经典递归);
③ 再把 t 个盘用四根柱挪回目标柱。
总步数 = 2·FS(t) + (2n−t−1),对 t = 1…n−1 挨个试,取最小。

试出最合算的「切法」t,是整套算法里最妙的一步:它不硬算,而是让算法自己挑最快的分法。对比上表可见四柱的省力:8 个盘从 255 步直落到 33 步。

故事三:73 年的悬案。算法好使,可它真的最优吗?这一问悬了七十多年:1994 年 Stockmeyer 给出四柱步数的通项公式;2003–2004 年,中国学者杨锴、刘铎等先后给出证明思路;直到 2014 年法国数学家 Bousch 才严格证明 Frame–Stewart 算法就是四柱汉诺塔的最优解——从猜想立案到结案,整整 73 年。更多柱子(五柱、六柱……)的最优解至今仍是在递归近似中摸索的开放问题。

更多的柱子,更深的迷宫。下表摘录广义汉诺塔的最少步数(盘数 1–10):柱子越多,同一盘数所需步数越少;但每加一根柱,最优策略的证明都更难一层。

盘数 \ 柱数3 柱4 柱5 柱6 柱7 柱
111111
233333
375555
4159777
531131199
66317151311
712725191715
825533232119
951141272523
10102349312927

主要参考:J. S. Frame, Amer. Math. Monthly, 1941;P. K. Stockmeyer, Congressus Numerantium, 1994;T. Bousch, La quatrième tour de Hanoï, 2014;薛兴元《汉诺塔问题及其推广》(本工坊算法演示与表格的核对依据)。

🎉

金塔归位!