用最少步数搬完整座塔。
选择圆盘,再点击目标柱移动。
最优步数通关可解锁最优解。
将所有圆盘从起点移动到终点,体会递归的优雅。
点击起始柱选取顶部圆盘,再点击目标柱放下 · 大盘不能叠在小盘上
汉诺塔是经典的递归问题:将 n 个大小不同的圆盘从起始柱 A 移动到目标柱 C,每次只能移动一个圆盘,且大盘不能放在小盘上方。中间柱 B 可作辅助。
这三步本身就是递归的——步骤 1 和 3 是规模更小的汉诺塔问题。
递推关系: T(n) = 2·T(n−1) + 1,解为 T(n) = 2ⁿ − 1。 这意味着 3 个盘最少 7 步,8 个盘最少 255 步——每增加一个盘,步数翻倍加一。
汉诺塔的每一步可以用二进制数来编码:将步骤编号写成二进制,最低位的 1 所在位置就是要移动的圆盘编号。这揭示了递归结构和二进制计数之间的深层联系。
点击「自动演示」可以观看递归算法一步步执行。调整速度,仔细观察圆盘的移动模式——你会看到递归的「自相似」结构。