汉诺塔2025年3月17日 | 阅读 3 分钟 1. 这是一个经典的问题,你要尝试只使用三个桩将所有圆盘从一个桩移动到另一个桩。 2. 最初,所有的圆盘都堆叠在一起,较大的圆盘位于较小圆盘的下方。 3. 你可以将圆盘移动到三个桩中的任何一个,试图重新安置所有圆盘,但是不能将较大的圆盘放在较小的圆盘之上,并且一次只能移动一个圆盘。 这个问题可以通过分治算法轻松解决 ![]() 在上述 7 个步骤中,在给定条件下,桩 A 中的所有圆盘将被转移到 C
设 T (n) 为将 n 个圆盘从桩 A 移动到桩 C 所花费的总时间
因此,花费的总时间 T (n) = T (n-1)+1+ T(n-1) 汉诺塔的关系公式是 ![]() 我们得到, ![]() 这是一个公比为 r=2 的等比数列 ![]() B 等式是当我们必须将 n 个圆盘从一个桩移动到另一个桩时,汉诺塔技术所需的复杂度。 T (3) = 23- 1 [正如在概念中所证明的那样,将有 7 个步骤,现在通过一般方程证明] 汉诺塔的程序输出 Enter the number of disks: 3 The sequence of moves involved in the Tower of Hanoi is Move disk 1 from peg A to peg C Move disk 2 from peg A to peg B Move disk 1 from peg C to peg B Move disk 3 from peg A to peg C Move disk 1 from peg B to peg A Move disk 2 from peg B to peg C Move disk 1 from peg A to peg ![]() 下一个主题二叉堆排序 |
我们请求您订阅我们的新闻通讯以获取最新更新。