书城教材教辅中学理科课程资源-漫话数学故事
15181100000024

第24章 宁蒙

一种受人喜爱的对策游戏的魅力在于,对策的双方都有取胜的机会。人人都可以运用自己的智慧,谋求取胜的策略;人人都希望自己能比对手技高一筹。倘若一种对策游戏,对策双方对取胜之道都一清二楚,大家都按某种固定的规则去应付对方,双方间的秘密已荡然无存。这样的游戏必定索然无味,对策本身也就失去了魅力。

数学家的兴趣则是完全另外一回事,他们竭尽心思想弄清各种游戏的取胜策略或取胜的可能性大小。因为他们认为,从研讨对策模型所获得的数学方法,远比对策中的胜负要重要得多。不过,即使数学家们已经得出准确结论的东西,也未必能为世人所尽知。人们依旧津津乐道地玩他们自己的游戏!公元1912年,德国数学家策梅罗(Zermelo,1871—1953)研究了国际象棋中的对策,证明了某三种全局着法中,必定存在一种不依赖对方怎样行动,总能取胜或下成和局的着法!但这丝毫没有影响人们对于国际象棋的爱好,世界性的比赛依然一个接着一个!

还有一种极为有趣的火柴游戏,数学家们对它的研究早已一清二楚,但至今仍然深深地吸引着许多青少年爱好者,成为他们课余饭后的一种娱乐。这种游戏源于我们中国,大约一百年前传入欧洲,取名“宁蒙”,也叫中国二人游戏(Chinese Game of Nim)。

游戏的方法是这样的:有若干堆火柴,每堆火柴的数目是任意的。现有A、B两人轮流地取这些火柴,每人只能从某堆中取去若干根火柴,也可以整堆全部取走,但不允许跨堆取,即不能一次向两堆中拿。约定谁拿掉最后一根火柴就算谁嬴。

数学家们已经完全掌握了这种两人游戏的制胜诀窍。为了让读者充分了解取胜的奥妙,我们先从游戏中的获胜位置讲起。为叙述方便,我们用记号(p,q,r,…,s)表示对策中火柴的状态。例如(2,2)表示有两堆火柴,每堆各有两根;(1,2,3)表示有三堆火柴,各堆分别为一根、二根和三根等等。

很明显,(1,1)是一种获胜位置,这是可以直接加以验证的。(2,2)

也是一种获胜位置。事实上当A拿成(2,2)后,无论B怎样应付都有A胜(见图38)。同样,(1,2,3)也是获胜位置。当A拿成(1,2,3)后,B可能拿成以下几种情形:

1°B拿成(2,3),A拿成(2,2)·胜;

2°B拿成(1,2,2),A拿成(2,2)·胜;

3°B拿成(1,1,3),A拿成(1,1)·胜;

4°B拿成(1,3),A拿成(1,1)·胜;

5°B拿成(1,2,1),A拿成(1,1)·胜;

6°B拿成(1,2),A拿成(1,1)·胜。

同样分析可以知道(n,n)·及(1,2n,2n+1)·等都是获胜位置。那么一般地,怎样的位置才是获胜位置呢?探索的过程无疑是很艰辛的!但读者大可不必去重蹈那曲折的认识过程,数学家们已经为我们找到了捷径。

把每一堆火柴的数目用二进制数表示出来,写成一行。于是,有几堆火柴就有几行二进制数码。例如(2,2)、(1,2,3)、(3,6,7)和(4,5,6,7)等状态,可以相应写出:1010〖-〗偶偶11011〖-〗偶偶11110111〖-〗偶奇偶100101110111〖-〗偶偶偶把各行数对齐,并将各列数码相加(不进位),把各自结果的奇偶性写在该列的下方。如果得到的全是偶的,则相应的火柴状态称为正确的状态。数学家告诉我们,正确的状态是获胜位置,不正确的状态就不是获胜位置。

道理并不难,假定A拿成了一种正确状态,这时各堆火柴的数目所写成的二进制数各列之和均为偶数。现在轮到B拿,B不可避免地要动到某行二进位数,从而使这一行的一些1变成0,而另一些0变成1。这就使得一些列的和由偶变为奇,从而由正确状态变为不正确状态。

反过来,如果B已经拿成不正确状态,比如拿成偶,偶,奇,偶,奇,偶。这表明在右起第二列和第四列内,至少各有一个1,此时有以下两种可能性:

(1)上述两个“1”在同一个二进位数内,即××1×1×。

则A只要从这一个二进位数相应的那堆火柴里,取走1010(2)=10根,这一行的数就变为××0×0×。

上式有“×”的地方,数字不变。这样,A拿后的火柴状态变为正确状态。这时相应二进位数各列之和,包括第二列与第四列,都变为偶数。

(2)上述两个“1”不在同一行,而在两个不同的行:××1×0×××0×1×。

由于1000(2)-0010(2)=8-2=6=0110(2)也就是说,当从上一行相应的堆取走6根火柴时,上面两行将变为如下状态:××0×1×××0×1×。

式中有“×”的地方,数字都不变。从而各列之和全为偶数。即此时A已拿成正确状态。

综合以上两种情形,说明如果B拿成不正确状态,则A一定有办法把它拿回到正确状态。而A一旦拿成正确状态,轮到B拿就只能破坏这种状态,这就是说,只要A在游戏的某个时刻把握住了正确状态,它实际上已经稳操胜券了!

我想聪明的读者大约都已掌握了火柴游戏的取胜秘诀。不过,如果对方是生手,你完全不必如临大敌。因为开始时每堆火柴数目很多,堆数也很多,你完全可以随心所欲地拿。等火柴拿得差不多时,再看准那些形如:

(2,2),(1,2,3),(n,n),(1,2n,2n+1)。

之类基本获胜位置或它们的组合,你的胜利是完全不成问题的!

火柴游戏有许多有趣的变种。其中最为精彩和出人意料的是如图39那局闷宫棋,双方的炮均不能离行,逼近将边的兵也不该动,否则必输无疑。因此双方只有动炮及边兵,如果把可动的空位当成火柴的根数的话,那么这种棋局相当于初始状态为(1,4,8)的火柴游戏。这不是一个获胜位置,所以先走的人第一步走“炮七进三”,必定可操胜券。因为这时的状态(1,4,5)已是一个获胜位置。