山寺前的石阶上散落着香客留下的铜钱。两人轮流出手:任选一级台阶,把上面任意多枚(至少一枚)铜钱往下挪一级。从第一级挪到地面的铜钱,就算收进您的口袋,从此离开游戏。
谁把最后一枚铜钱送下石阶,谁就赢。
这个游戏通常追溯到 R. P. Sprague(1937)——正是「Sprague–Grundy 理论」里的那位 Sprague。CMU 的 Ferguson 讲义《Impartial Combinatorial Games》第 6 节就明确标注着 Staircase Nim (Sprague 1937)。
它也是《Winning Ways》里长盛不衰的经典例题。
关键在一个漂亮的对消:如果对手把铜钱从偶数级挪到奇数级,您立刻把同一批铜钱从那一级再往下挪一级——奇数级上的铜钱数原封不动,等于他白走一步。所以偶数级的铜钱是死子,对胜负毫无影响。
反之,把铜钱从奇数级往下挪,就等于在经典 Nim 里从对应的一堆取子。
于是:局面必败 ⟺ 奇数级铜钱数的异或 = 0。
给每枚铜钱记一个势能:第 i 级的铜钱势能为 i(还要挪几级才落地)。每走一步,势能总和严格减小,所以游戏一定在有限步内结束——这正是「无环」的保证。
奇数级的势能是奇数、偶数级是偶数,奇偶之分正是这个游戏的骨架。
把「台阶」换成「树」:每枚硬币放在一个节点上,每步把硬币往父节点挪。这就成了 HackerRank「Move the Coins」(2015) 的题面——判据也顺势推广:算每个节点到根的深度,深度为奇数的节点上的硬币数异或为 0 则必败。
台阶只是退化成一条链的树;而「只看奇数深度」的对消论证,一个字都不用改。
把胜负条件倒过来(无法出手者赢)就是反规则版;把「只能下移一级」放宽成「下移任意级」,则是另一族游戏。
Staircase Nim 与经典 Nim(Bouton 1901)、Moore's Nimk(Moore 1910)同属无偏取子游戏家族。
注意:偶数级的数字根本不出现在公式里——它们只是陪衬。这也正是本游戏最迷人的地方:一半的铜钱完全不用管。