判决书:Klein 四元群
这个问题不需要碰运气——一个七行的群论论证就能把「末行哪里可、哪里不可」说死。主角是 Klein 四元群 ℤ₂×ℤ₂={0, e₁, e₂, e₃}:最小的非循环群——四个元素各自与自己相加得 0,任何两个非零元相加恰得第三个(e₁⊕e₂=e₃),交换律当然成立。
第一步 · 给十五个孔发三色通行证
把 ℤ₂×ℤ₂ 的三个非零元 e₁、e₂、e₃ 当成三种颜色,按下图给 15 个孔染色(染色方式由程序从「每条跳线三色齐全」的线性方程组解出,本质唯一)。于是每条可跳直线上的三个相邻孔,恰好一 e₁、一 e₂、一 e₃,无一例外——36 条跳线全部程序核验通过。
第二步 · 不变量:全盘之「异或」纹丝不动
把一个局面的类定义为:盘上所有棋子所在孔的类标在 ℤ₂×ℤ₂ 中求和(即逐位异或)。一次跳跃吃掉类标 x、y 的两子、补回类标 z 的一子,而三孔同线保证 x⊕y⊕z=0——故
开局顶孔空:三色各恰有 5 孔,e₃ 色被拿走一个,故开局类=e₁⊕e₂=e₃。无论怎么跳,这个类永远不变。
第三步 · 宣判:末行五孔,四孔死刑
若终局只剩一子,这枚子独自承担全盘的类,故它必须站在 e₃ 类的孔上。全盘 e₃ 孔恰 5 个(下图金色),而末行五孔中只有正中的 13 号是 e₃——所以:
| 末行孔位 | 11 | 12 | 13(正中) | 14 | 15 |
|---|---|---|---|---|---|
| 类标 | e₂ | e₁ | e₃ | e₁ | e₂ |
| 判决 | 无解 | 无解 | 16 128 解 | 无解 | 无解 |
第四步 · 类匹配还不够,引擎来穷举
不变量只是必要条件:第 5 号孔也是 e₃ 类,与开局同类,可穷举引擎把它的 3 012 个后继死局全部走遍——0 解。真正可达的单子终点只有四个:
| 单子终点(孔号) | 1(回到顶孔) | 7 | 10 | 13(末行正中) | 5 |
|---|---|---|---|---|---|
| 解法数 | 6 816 | 3 408 | 3 408 | 16 128 | 0(类匹配仍无解) |
合计 29 760 种单子终局。末行正中的 16 128 种解法中,最省事的一种只有 13 步(每跳一步必少一子,13 步是下限)——「对局」页的演示按钮放的就是它,且与 Cracker Barrel 官方教程的解法逐步一致。程序复演通过