Chomp 由美国数学家 David Gale 在 1974 年提出,论文标题就叫《A curious Nim-type game》 (《一个奇怪的 Nim 型游戏》),发表于 American Mathematical Monthly 第 81 卷 876–879 页。 规则简单到一句话:巧克力左上角是毒块,每次咬掉一格连同其右下方所有格子,吃到毒块者输。
Gale 用策略偷取证明了:只要巧克力不止一格,先手必胜。可奇怪的是,这个证明 不会告诉你第一步该吃哪格——它只告诉你「一定存在」。于是 Chomp 成了数学里 罕见的组合:一个连胜负都定死了的游戏,却把「怎么赢」藏成了谜。
反证法。假设后手有必胜策略。先手第一步只咬掉右上角那一小块(它右下方没有别的格子,等于只吃掉自己一块)。
如果这一步之后,局面已经对后手不利,那先手就赢了;否则后手在这个「少了一块」的盘面上必有制胜招 M。 关键在于:M 在先手最初的全盘上同样合法——多出来的格子只会让行动方多些选择,绝不会让行动的一方变差。
于是先手干脆第一步就走 M(若 M 恰好要吃掉已被啃掉的那格,就换成别的、更不吃亏)。这样一来, 先手等于「偷」走了后手假想中的必胜策略,矛盾。所以后手必胜的假设不成立,先手必胜。
同样的「策略偷取」把戏,更早被用来解决 Hex(六连棋):Hex 由丹麦人 Piet Hein 于 1942 年、 数学家 John Nash 于 1947 年前后各自独立发明,棋盘上不可能出现平局,于是策略偷取立刻给出结论—— 先手必胜。1979 年 Gale 还发表论文,把 Hex 与拓扑里的 Brouwer 不动点定理联系起来。
Chomp、Hex 这两个「先手必胜却不知怎么赢」的游戏,共享同一颗数学心脏:当你假设对手有必胜策略时, 先手可以用「多走一步不吃亏」把它偷过来——矛盾。这类论证统称 strategy stealing(策略偷取)。
策略偷取是非构造性的,所以「先手必胜」既不给首着、也不给策略。人们只对少数棋盘完全弄清了答案:
1990 年代以后,随着计算机与高效搜索的发展,人们能对越来越大的具体棋盘做穷举求解 (本馆造局器就实时算出了 7×7 以内每块棋盘的唯一必胜首着)。但把「一堆个案」升格成「一般公式」的努力, 至今没有成功——首着之谜仍在。
把巧克力看成一张「偏序图形」:每格被它左上方的格子支配,一着吃掉一个「上闭集」。这类游戏叫 poset game(偏序博弈),Chomp、Nim、以及著名的「拿石子」都能装进这个框架。策略偷取的适用性, 也正来自偏序结构「多走一步不吃亏」的单调性。
也正因如此,Chomp 常被当作组合博弈论(combinatorial game theory)的入门范例:规则最短, 却同时握着「必胜」与「不知怎么赢」这两种极端。
Gale 一生喜欢用这种「小游戏」讲大道理。他还留下一个更著名的开放问题雏形:Chomp 的一般解。
今天,Chomp 出现在无数算法课、博弈论教材和编程竞赛里——它既是「记忆化搜索」的练兵场, 也是提醒我们:「存在」与「构造」之间,隔着一段真实的距离。