午夜#学术新闻#
今天在英国赫里福德郡 Ledbury附近Electromagnetic Field 2026 科技艺术节上举办的活动里有一场Marathon Tower of Hanoi solve(16 discs)——“马拉松汉诺塔挑战(16片圆盘)”
📍 时间地点:星期六 09:00–17:00,在 “Maths Village(数学村)”
活动说明里幽默地写道:
“底层圆盘只会在中途移动一次,这将是当天的亮点!这可能是人类史上最长的汉诺塔解法,但没人能确定,也没人真的在意。”
汉诺塔的最优步数公式是 2^𝑛−1。对于 16 个圆盘,需要 65,535 步。
《神秘博士》(Doctor Who)集剧里Celestial Toymaker的一个情节
博士在解汉诺塔时,Toymaker 会随机喊出一个“步数索引”,把盘子直接跳到最优解路径上的某个状态。
博士必须在这种干扰下继续正确地执行下一步。
注意,Toymaker 只能把局面跳到最优路径上的状态,而不是任意状态。这实际上不算太难。
如果允许跳到任意状态(而不仅是最优路径上的状态),问题就变成:如何从一个任意状态找到到目标状态的最短路径。
在这种情况下,通常最大的盘子只需要移动一次(或者如果已经在目标柱子上则不动)。
但更复杂的情况是:如果要从一个任意状态到另一个任意状态(而不是到终点),有时最优解需要把最大的盘子移动两次,这打破了“最大盘子只动一次”的直觉。
如果你增加一条额外规则,即只能将圆盘移到相邻的柱上,那么你就不得不遍历所有可能的状态。
虽然这需要花上更长时间,但好处是操作起来非常简单:你总是有且仅有一个可行的走法(忽略那个会让你回到上一个状态的走法)。
如果记录下所有的局面/状态,把它们看作是点,则在各个状态之间根据合法操作可以形成一个有向图。此时,这个图是哈密顿回路(Hamiltonian cycle)。
另一条可以形成哈密顿回路简单规则是:“每次移动必须涉及包含最大盘子的柱子”(要么把盘子移到最大盘所在柱子,要么从最大盘所在柱子移出)。
http://t.cn/AXKrTteD
http://t.cn/AXKrTtek
