主题
Search

河内塔


TowersOfHanoi
Solution of the three-rod four-disk tower of Hanoi problem

河内塔(通常也称为“汉诺塔”),是由 E. 卢卡斯于 1883 年发明的谜题。它也被称为梵天塔谜题,并在电影《猩球崛起》(2011 年)中以“卢卡斯塔”的名义作为猿类的智力测试出现。

给定一叠n个圆盘,从下到上按大小排列在一个杆上,以及两个空杆,河内塔谜题要求将这叠圆盘从一个杆移动到另一个杆所需的最少步数,其中只有当将较小的圆盘放在较大的圆盘之上时才允许移动。具有n=4个柱子和n个圆盘的谜题有时被称为 Reve 谜题。

该问题与在n-超立方体上找到哈密顿路径同构(Gardner 1957, 1959)。

TowersofHanoiSolution

给定三个杆和n个圆盘,序列S_1={a_k}给出在第k步要移动的圆盘的编号(i=1n),由非常简单的递归程序给出,该程序从单圆盘的列表S_1={1}开始,并递归计算

 S_n={S_(n-1),n,S_(n-1)}.
(1)

对于n的前几个值,这给出了下表所示的序列。上图说明了三杆四圆盘问题的解法。

nS_n
11
21, 2, 1
31, 2, 1, 3, 1, 2, 1
41, 2, 1, 3, 1, 2, 1, 4, 1, 2, 1, 3, 1, 2, 1

随着圆盘数量的增加(同样对于三杆),获得一个无限序列,上表说明了该序列的前几项 (OEIS A001511)。令人惊讶的是,这正是二进制进位序列加一。更令人惊讶的是,在第k步之后移动的圆盘数量与需要在k被加数Ryser 公式中添加或删除的元素相同(Gardner 1988,Vardi 1991)。一种简单的手工解法使用涂有交替颜色的圆盘。任何两个相同颜色的圆盘都不会叠放在一起,并且任何圆盘都不会连续移动两次(P. Tokarczuk,私人通信,2004 年 6 月 23 日)。

由于上述过程,求解三个杆上的n个圆盘的谜题所需的移动次数h_n递推关系给出

 h_n=2h_(n-1)+1
(2)

其中h_1=1。求解得到

 h_n=2^n-1,
(3)

即,梅森数

对于三个杆,可以使用卢卡斯对应证明上述解法是最小的,卢卡斯对应将帕斯卡三角形河内图联系起来。虽然已知在四个杆上转移圆盘的算法,但没有一个被证明是最小的。

可以构造一个河内图,其图顶点对应于n个塔的合法配置,其中图顶点在相应的配置可以通过合法移动获得时相邻。谜题本身可以使用二进制格雷码来解决。

Poole (1994) 和 Rangel-Mondragón 给出了用于解决河内塔问题的 Wolfram 语言 例程。Poole 的算法适用于任意圆盘配置,并以最少的步数提供解决方案。

在四个杆上排序n=1, 2, ... 个圆盘所需的最少移动次数由 1, 3, 5, 9, 13, 17, 25, 33, ... 给出 (OEIS A007664)。据推测,该序列由以下递归式给出

 s_n=s_(n-1)+2^x,
(4)

其中s_1=1x是以下方程的正底整数解

 n-1=1/2x(x+1),
(5)

即,

 x=|_(sqrt(8n-7)-1)/2_|.
(6)

这将给出显式公式

 s_n=1+[n-1/2x(x-1)-1]2^x.
(7)

Wolfram (2022) 将河内塔分析为一个多计算过程,包括通过使用分支图


参见

二进制进位序列, 格雷码, 煎饼排序, Puz-图, Ryser 公式

使用 Wolfram|Alpha 探索

参考文献

Allouche, J.-P. 和 Shallit, J. "k-正则序列环。" Theoret. Comput. Sci. 98, 163-197, 1992.Allouche, J.-P. "关于循环河内塔的注释。" Theor. Comput. Sci. 123, 3-7, 1994.Bogomolny, A. "河内塔。" http://www.cut-the-knot.org/recurrence/hanoi.shtml.Brousseau, A. "具有更多柱子的河内塔。" J. Recr. Math. 8, 169-176, 1972.Chartrand, G. "河内塔谜题。" §6.3 in 图论入门。 New York: Dover, pp. 135-139, 1985.Daiev, V. "问题 636:偶数整数的最大公约数。" Math. Mag. 40, 164-165, 1967.Dubrovsky, V. "嵌套谜题,第一部分:移动东方塔。" Quantum 6, 53-57 (Jan.) 和 49-51 (Feb.), 1996.Flajolet, P.; Raoult, J.-C.; 和 Vuillemin, J. "评估算术表达式所需的寄存器数量。" Theoret. Comput. Sci. 9, 99-125, 1979.Frame, J. S. "问题 3918 的解。" Amer. Math. Monthly 41, 216-217, 1941.Gardner, M. "数学游戏:关于二十面体游戏和河内塔之间惊人的相似性。" Sci. Amer. 196, 150-156, 1957 年 5 月。Gardner, M. "二十面体游戏和河内塔。" Ch. 6 in 六角屈挠器和其他数学消遣:第一本科学美国人谜题和游戏书。 New York: Simon and Schuster, pp. 55-62, 1959.Kai, Y. 和 Chuan, X. "四柱河内塔的初步探讨。" Acta Scient. Natur. Univers. Pekin. 40, 99-106, 2004.Kasner, E. 和 Newman, J. R. 数学与想象力。 Redmond, WA: Tempus Books, pp. 169-171, 1989.Kolar, M. "河内塔 (TH) 谜题。" http://HanoiTower.mkolar.org/.Kraitchik, M. "河内塔。" §3.12.4 in 数学娱乐。 New York: W. W. Norton, pp. 91-93, 1942.Lucas, É. 数学娱乐,第 3 卷。 Paris: Gauthier-Villars, 1891-1894. Reprinted Albert Blanchard, 1960.Poole, D. G. "克劳斯教授的塔和三角形(或,帕斯卡了解河内塔)。" Math. Mag. 67, 323-344, 1994. Poole, D. G. "河内塔包。" https://mathworld.net.cn/packages/Hanoi.m. Rangel-Mondragón, J. "广义河内塔。" http://library.wolfram.com/infocenter/MathSource/4861/.Ruskey, F. "河内塔。" http://www.theory.csc.uvic.ca/~cos/inf/comb/SubsetInfo.html#Hanoi.Schoute, P. H. "梵天的戒指。" Eigen Haard 22, 274-276, 1884.Sloane, N. J. A. 序列 A001511/M0127, A007664/M2449, 和 A007665/M2414 在 "整数序列在线百科全书" 中。Stewart, B. M. "问题 3918。" Amer. Math. Monthly 39, 363, 1939.Stewart, B. M. "问题 3918 的解。" Amer. Math. Monthly 41, 216-219, 1941.Vardi, I. Mathematica 中的计算娱乐。 Reading, MA: Addison-Wesley, pp. 111-112, 1991.Wolfram, S. "游戏和谜题作为多计算系统。" 2022 年 6 月 8 日。 https://writings.stephenwolfram.com/2022/06/games-and-puzzles-as-multicomputational-systems/.Wood, D. "梵天塔和河内塔再访。" J. Recr. Math. 14, 17-24, 1981.Yang, S. "动画化 4 柱河内塔的最佳移动集合。" 2024 年 10 月 31 日。 https://community.wolfram.com/groups/-/m/t/3312046.

在 Wolfram|Alpha 上引用

河内塔

请引用为

Weisstein, Eric W. "河内塔。" 来自 MathWorld--一个 Wolfram Web 资源。 https://mathworld.net.cn/TowerofHanoi.html

主题分类