谜题 IBM-073
汉诺塔状态的反推
IBM Research · Ponder This · 2004 年 5 月
IBM Ponder This #073 · 2004 年 5 月
本题根据 Michael Brand 的建议,改编自 Édouard Lucas 的汉诺塔。
第一部分:有 A、B、C 三根柱子及 64 个大小不同的圆盘,编号从 1(最小)到 64(最大)。每次只能移动最上方一个圆盘,且大盘不能压在小盘上。
某时刻 A、B、C 分别有 35、18、11 个圆盘。已知把所有圆盘集中到某一根柱子的最少移动次数为 3141592653589793238。求一种可能的初始分布,列出 C 和 B 上的圆盘编号;答案不唯一。
原题要求按 C: …、B: … 的纯文本格式列出编号,逗号或空格分隔,不要附件。例如所给格式中的 C 行含 11 个数、B 行含 18 个数,并不是要求使用那组示例数值。
第二部分:程序正在沿最短路线,把最初全部位于 A 的 64 个圆盘移到 B。运行若干步后程序停止。屏幕只保留当前三根柱子最上方圆盘的编号,每步都会覆盖旧显示。
仅凭这些信息,能否唯一确定下一步应该怎样移动?证明你的结论。允许计算机辅助,但原题说明可以手工解答。
解答
认真尝试后再打开待补充。