🧩 谜题

🗼汉诺塔

三根柱子、几个盘子,藏着一条翻倍再翻倍的规律——最少步数是 2ⁿ−1。

传说印度贝拿勒斯的神庙里有三根柱子,僧侣们日夜不停地把 64 个金盘从一根柱子搬到另一根。传说,盘子全部搬完的那一天,世界就会终结。听起来吓人?等你看完步数的规律,就知道这个「末日」有多遥远。

规则只有三条

游戏的目标:把一摞大小不同的盘子从左边的柱子整体搬到右边的柱子上。

  1. 一次只动一个盘子,而且只能拿柱子最上面的那个;
  2. 盘子只能放在某根柱子的顶端;
  3. 大盘子永远不能压在小盘子上

规则简单,但第三条是雷:一旦大盘压了小盘,立刻全盘皆输。顺带一提:最小的盘子最自由——它想压谁压谁,永远不犯规。

三个盘子的打法

直接想三个盘子容易乱,诀窍是:先会搬两个盘,才会搬三个盘

要把 3 个盘搬到目标柱:

  1. 先把上面 2 个盘搬到中间那根辅助柱(3 步);
  2. 把最大的盘直接放到目标柱(1 步);
  3. 再把辅助柱上的 2 个盘搬回来盖住它(3 步)。

3+1+3=73 + 1 + 3 = 7 步,完成。注意到了吗?「搬 2 个盘」这件事出现了两次——大任务被拆成了两次小任务,外加自己的一次移动。

四个盘也一样:先把 3 个盘搬到辅助柱(7 步),挪最大盘(1 步),再把 3 个盘搬回来(7 步),共 15 步。会搬 n−1 个,就会搬 n 个——这条路没有尽头,也永远走得通。

互动演示汉诺塔
圆盘数
已走步数: 0最少步数: 7

每次移动一片,大片不能压在小片上

步数:1, 3, 7, 15, 31…

数一数最少步数:

盘数12345
最少步数1371531

规律是翻倍再加 13=1×2+13 = 1 \times 2 + 17=3×2+17 = 3 \times 2 + 115=7×2+115 = 7 \times 2 + 1……写成公式就是:

2n12^n - 1

n 个盘子,最少就要 2n12^n - 1 步。这和拆解策略完全对得上:搬 n 个盘 = 搬两次 n−1 个盘 + 挪一次大盘。

为什么 64 个盘子搬不完

算一笔账

26411.8×10192^{64} - 1 \approx 1.8 \times 10^{19}。就算僧侣每秒移一个盘、一秒不停,也要五千八百多亿年——是宇宙年龄(约 140 亿年)的 40 多倍。所以世界还很安全。

这就是指数增长的可怕之处:加 1 个盘子只是小小的一步,步数却几乎翻倍。从 5 个盘到 10 个盘,最少步数从 31 涨到 1023——每秒走一步也只要 17 分钟,完全没问题;到 20 个盘,超过一百万步。凡是「每步翻倍」的东西,很快就大到没法想象。

动手检验

随堂小测

  1. 1. 3 个盘子最少要几步?

  2. 2. 从 3 个盘变 4 个盘,最少步数从 7 变成多少?

  3. 3. 为什么说 64 个盘的传说永远搬不完?