跳到主要内容
Z

汉诺塔模拟器

用递归算法求解汉诺塔问题的模拟工具——以最少 2ⁿ−1 步移动圆盘,支持单步执行。直接在浏览器中运行。

免费 无需注册 客户端运行 注重隐私 Updated

/

伪代码

Press Run to animate the algorithm.

使用方法

  1. 1 点击 Run,观看递归解法将圆盘逐个从 A 柱移动到 C 柱。
  2. 2 大盘永远不会被放在小盘上——留意这条规则在每一步中都被严格遵守。
  3. 3 使用 Shuffle 更改圆盘数量,或逐步执行每一次移动。
  4. 4 n 个圆盘所需的最少步数为 2ⁿ − 1。

为什么使用此工具

  • 直观感受经典的递归思路:先把 n−1 个圆盘移到辅助柱,移动最大的圆盘,再把它们移回来。
  • 理解为什么每多一个圆盘,所需步数就会翻倍(2ⁿ − 1)。
  • 是学习递归式问题分解的绝佳入门案例。
  • 完全在你的浏览器中运行,无需注册,无需上传任何文件。

常见问题

汉诺塔是什么?

一种益智游戏,由三根柱子和一叠大小递减的圆盘组成。目标是将整叠圆盘移动到另一根柱子上,每次只能移动一个圆盘,且不能把大盘放在小盘上面。

需要多少步才能完成?

最少步数为 2ⁿ − 1(n 为圆盘数量)——3 个圆盘需要 7 步,5 个圆盘需要 31 步,20 个圆盘则超过一百万步。

递归解法是如何运作的?

要把 n 个圆盘从 A 柱移到 C 柱:先递归地把上面 n−1 个圆盘从 A 移到 B,再把最大的圆盘从 A 移到 C,最后递归地把那 n−1 个圆盘从 B 移到 C。

为什么它是递归的经典范例?

它把一个规模为 n 的问题,拆解成两个规模为 n−1 的子问题,再加一步移动操作——这正是递归式问题分解的本质所在。

什么是 汉诺塔模拟器?

汉诺塔模拟器演示了这道经典三柱问题的递归解法:要移动 n 个圆盘,先把上面 n−1 个圆盘移到辅助柱,再移动最大的圆盘,最后把那 n−1 个圆盘移回目标柱——过程中始终不把大盘放在小盘上面,总共只需 2ⁿ−1 步。

功能特性

Step-by-step animation

Watch the optimal recursive solution move disks between pegs.

Complexity

Exactly 2ⁿ − 1 moves → O(2ⁿ) time. Space: O(n) recursion depth.

100% private

Runs entirely in your browser — nothing is uploaded.

示例

Input

3 disks

Output

2³ − 1 = 7 moves (optimal)

常见使用场景

  1. 1

    Learn recursion

    See how the problem reduces to two smaller subproblems.

  2. 2

    Understand exponential growth

    Watch move counts double with each added disk (2ⁿ − 1).

  3. 3

    Teach divide-and-conquer

    Illustrate a clean recursive decomposition.

概要

Zerethon's Tower of Hanoi visualizer animates the classic recursive puzzle in your browser: move a stack of disks from one peg to another, never placing a larger disk on a smaller one. Solving n disks takes exactly 2ⁿ − 1 moves — O(2ⁿ) time — with O(n) recursion depth. It is the textbook example of recursion.

分类
算法
价格
免费
隐私
基于浏览器
注册
无需

References

隐私

除非另有说明,否则你的数据永远不会离开浏览器。汉诺塔模拟器 完全在客户端运行 — 无需上传服务器,不记录日志,不追踪你输入的内容。

刚接触?阅读包含 Big-O 分析的分步讲解: 了解 Dynamic Programming →

相关工具

在 Zerethon Social 上创作、分享与成长

免费注册。赚取积分,收集成就,与全球创作者建立联系。

免费注册