通过二进制计数解决汉诺塔

原标题Solving the Towers of Hanoi by Counting in Binary

二进制进位决定移动哪个圆盘,递归论证则说明这一解法为何使用最少步数。

KSKeith Schwarz嘉宾
频道
3Blue1Brown
发布
2016年11月25日
视频
13:58
阅读
4 分钟
幻灯片
4
原文
英语
在 YouTube 打开
往下滚动阅读时,视频会缩到右下角继续播放。字幕跟随阅读语言。
阅读语言共 2 种语言可读
由 AI 从英语原文翻译。打开“对照原文”可以逐段核对。
摘要

30 秒看懂

3Blue1Brown 与 Keith Schwarz 将二进制计数和汉诺塔联系起来。他们展示移动规则,解释其递归结构,并推导 n 个圆盘至少需要 2ⁿ−1 步;后续视频讨论与谢尔宾斯基三角形的联系。

  1. 1三根柱子与圆盘每次只能移动一个圆盘,且不能把大圆盘放在小圆盘上。
  2. 2二进制进位每一位表示 2 的幂,计数时各位不断进位。
  3. 3计数决定移动进位到达的位置决定移动哪个圆盘。
  4. 4递归移动先移开较小的塔,移动大圆盘,再把小塔移回来。
  5. 5最少步数递推式 T(n)=2T(n−1)+1 得出 2ⁿ−1 步。

要点建议

  1. 二进制加一时进位到达的位置决定要移动的圆盘。
  2. 最小圆盘沿柱子循环移动,每个较大圆盘有唯一合法的移动位置。
  3. 移动大圆盘前后,需要把较小的圆盘塔移开并移回。
  4. 三柱汉诺塔的 n 个圆盘至少需要 2ⁿ−1 步,递归解法恰好达到这个下界。
  5. 二进制计数与汉诺塔解法具有相同的递归结构。
全文

按章节阅读整理后的全文

只看原始文稿
01

汉诺塔问题

两位讲解者介绍三柱谜题和合法移动规则。

汉诺塔可以通过遵循二进制计数的节奏解决。在第一部分,讲解者与曾教授计算机科学的 Keith Schwarz 介绍谜题及其背后的递归结构;后续视频再探索谢尔宾斯基三角形。

谜题有三根柱子和大小不同的圆盘,最初按从大到小叠好。目标是将整塔移到另一根柱子:每次只能移动一个圆盘,也不能把较大的圆盘放在较小的圆盘上。

初始的五圆盘塔
幻灯片 1 / 4初始的五圆盘塔圆盘从最小到最大编号,最小圆盘为 0。

例子把最小的圆盘标为 0,然后依次编号为 1、2 等。第一步必须移动圆盘 0。之后圆盘 1 不能放在圆盘 0 上,所以只能移到剩下的柱子。

02

二进制的节奏

二进制计数展示了进位的自相似模式。

Schwarz 的发现是,二进制计数的模式决定了移动哪个圆盘。为了理解原因,先看一般位值计数中进位的节奏。

十进制中,我们依次使用 0 到 9,然后个位归零、十位进一。重复足够多次后,十位也会进位,百位增加。相同模式在更大尺度上继续出现。

二进制只使用 0 和 1。在 0 和 1 之后,下一个数写作 10:一个二加零个一。接着 11 表示三,再加一得到 100,即一个四。

二进制位值
幻灯片 2 / 4二进制位值二进制数 10 表示一个二和零个一。

二进制位值是 2 的幂:个位、二位、四位、八位等。进位发生得很频繁,因此重复结构尤其容易看见。

在每个尺度上,二进制计数都有相同形式:先数完一个较小范围,向下一位进位,再重复较小的模式。例如数到 1111,要先让最后三位数满,再向八位进位,然后让最后三位再数一遍。

03

把二进制进位变成移动

每次进位选择一个圆盘,最小圆盘则沿柱子循环移动。

从零开始用二进制计数。每次加一只改变最后一位时,将最小圆盘向右移动一根柱子;如果已在最右边,就绕回第一根柱子。固定方向会决定最终完成的塔落在哪根目标柱上;反转方向则选择另一根。

最小圆盘和最后一位
幻灯片 3 / 4最小圆盘和最后一位只改变最后一位对应移动圆盘 0。

当进位到达二位时,移动圆盘 1。除了放有圆盘 0 的柱子,它只有一个合法去处。进位到四位时移动圆盘 2,进位到八位时移动圆盘 3,以此类推。

得到的移动顺序以 0、1、0、2、0、1、0、3 开始。这个规则令人惊讶:为什么每次进位时对应的大圆盘恰好可以移动?又为什么它能高效完成任务?

04

为什么递归解法步数最少

移动最大圆盘前后都必须解决较小的同类问题。

Schwarz 用递归视角解释:为了把一个大圆盘移到目标柱,必须先把所有较小圆盘叠到备用柱上。然后移动大圆盘一次,最后把小塔移到它上面。

先移动较小的塔
幻灯片 4 / 4先移动较小的塔只有所有较小圆盘移到备用柱后,大圆盘才能移动。

较小的塔本身又是一个圆盘更少、规则相同的问题。每个圆盘都遵循同一模式:先移开上方圆盘,移动自己,再把小塔放回上面。

这一思路也证明了最优性。最大圆盘移动前,所有较小圆盘都必须移开;移动后,又必须把它们移到最大圆盘上。设 T(n) 为最少移动次数,则 T(n)=2T(n−1)+1,T(0)=0,因此 T(n)=2ⁿ−1。

05

为什么两种模式相同

二进制加一与递归解法具有相同的结构。

二进制计数与这一递归过程相对应:完成较小的模式、向下一位进位,再完成一次较小模式。每一步移动的圆盘,对应加一时从 0 变为 1 的最高位。

两个圆盘的顺序是圆盘 0、圆盘 1、圆盘 0,与数到二进制 11 的进位模式相同。三个圆盘则先解两圆盘问题,再移动圆盘 2,再解一次两圆盘问题,对应更大尺度的二进制模式。

在每个尺度上,两者都有“子问题、一步操作、子问题”的结构。因此,观察变化的二进制位就能重构汉诺塔的递归算法。视频承诺在第二部分解释与谢尔宾斯基三角形的联系。

同频道的其他文章

20 张幻灯片40:44EN → 简体中文
3Blue1Brown· 2026年10月16日Grant Sanderson:现在是投身数学的最好时机Grant Sanderson, Constantin Kogler · 3Blue1Brown学生担心 AI 已经解决了数学。Grant Sanderson 却认为恰恰相反:即使机器证明定理的能力超过人类,数学这套制度依然有价值,而新人正迎来一个难得的机会,可以参与重塑它。MathematicsAI for scienceHuman-AI Collaboration+2
29 张幻灯片51:55EN → 简体中文
3Blue1Brown· 2026年9月18日AI 解不出的最后一道 IMO 题Grant Sanderson · 3Blue1BrownGrant Sanderson 带你走一遍 2025 年 IMO 第 6 题——前沿模型没做出来的铺砖谜题——以及要证明一种构造最优,需要怎样的视觉耐心。MathematicsAI researchReasoning & test-time compute+2
0:55EN → 简体中文
3Blue1Brown· 2026年7月24日64 块方糖谜题:六组相等距离一个 4×4×4 的方糖块有三种颜色;证明总能找到六对同色方糖,且每对距离相等。MathematicsEducation
33:51EN → 简体中文
3Blue1Brown· 2026年7月16日交叉熵连接了什么:压缩、语言模型与 KL 散度Grant Sanderson · 3Blue1BrownGrant Sanderson 从码长推导交叉熵,并用它解释下一个 token 训练和模型蒸馏。MathematicsMachine LearningFoundation Models+1
幻灯片2:25EN → 简体中文
3Blue1Brown· 2026年6月12日香农如何测量英语的信息熵一场猜字母游戏帮助克劳德·香农估算英语文本的信息量,也揭示了预测与压缩之间的联系。MathematicsAI History
幻灯片1:02EN → 简体中文
3Blue1Brown· 2026年6月10日月球机器人与最优二进制编码谜题四个方向出现的频率不同,每条指令最少需要多少比特?MathematicsScience Communication