巴什老爷的钱庄开在老城最气派的大街上。他自诩家学渊源——先祖正是 1612 年写出《有趣又令人愉快的难题》的那位数学家巴歇(Claude-Gaspard Bachet de Méziriac)。老爷最爱的消遣,就是拿一桌金币考较客人:轮流拿,每次至多 m 枚,谁按规定拿走最后一枚,谁就按约定赢钱或赔钱。
账房里的算盘先生原本是老爷花重金请来的管账先生,肚里却装着老爷家传题解的全部答案。他悄悄对新来的小账房说:「别怕,按我的补数口诀下,老爷的金山您能搬空。」
这个游戏的名字来自法国数学家巴歇·德·梅齐里亚克:他在 1612 年出版的《有趣又令人愉快的难题》(Problèmes plaisants et délectables)里收录并分析了这类取子游戏,Bash Game 因此得名。这本书是欧洲最早的趣题集之一,影响深远。
顺便一提,巴歇还有一桩更出名的事:他在 1621 年把古希腊数学家丢番图的《算术》译成拉丁文出版——费马正是在这本书的页边写下了著名的「费马大定理」猜想。一套书,串起两个传奇。
「轮流拿、限个数、定输赢」的游戏在东西方民间流传了上千年:中国的「抢三十」(1 到 3 地报数,谁喊到 30 谁赢)、欧洲酒馆里的拿火柴棍赌酒,都是它的化身。规则只有一句话:桌上 n 枚,每次拿 1 到 m 枚,拿走关键的最后一枚按约定定输赢。
规则越简单,数学越锋利——它的必胜策略不用二进制、不用异或,一句补数口诀就说尽,是所有取子游戏里最适合入门的一课。
「取最后一枚者胜」的口诀是:每一轮您加对手的取数,总能凑成 m+1;把 m+1 的倍数留给对手,他就逃不出您的掌心。因为对手拿 1 您就补 m−1,拿 k 您就补 m+1−k——一轮下来恰好消去 m+1 枚。
比如 n=10、m=3(每轮 1~3 枚):10 = 4×2 + 2,余数 2 不是 0——先手拿 2 枚,留下 8 = 4×2,此后对手拿多少您都补成 4:8→4→0,最后一枚准落您手里。反过来,若 n 恰是 m+1 的倍数(如 n=8、m=3),先手必败——不管拿几枚,都会把「非倍数」送给对手。
「取最后一枚者负」的口诀只改一个字:把 m+1 的倍数加 1(即 (m+1)k+1)留给对手。这个局面下对手无论拿几枚,您都能再把「m+1 的倍数加 1」还给他,最后一枚终将砸在他手里。
陷阱在最底下:n=1 时先手只能拿走这 1 枚——直接告负。所以 1 = (m+1)×0+1 正是口诀里最小的必败数。比如 n=10、m=3:10 = 4×2+2 → 先手拿 1 枚,留下 9 = 4×2+1,把烫手山芋的引线交给对手。
钱袋小厮摆完币后,您要选「谁先拿」和「怎么算输赢」。算盘先生证明了——不管摆出多少枚,对每种规则来说,先手要么必胜、要么必败,二者必居其一。
唯一的风险是:选对了先手,后面的每一步也得走对——一步走错,铁桶阵就归老爷用啦。当然,低星级的时候老爷常常犯困……