下图是一个象棋残局。先走的一定胜。请试一试你的手段。
稍加分析,我们看出,红黑双方,只有边炮、中炮和七步兵能够往前移动。其他着法都会失败。
这三个子,能够前进的步数,分别最多是8、4、1步。谁最后没有步走时认输。
这个残局,对应于下面的一个游戏:
设有三堆火柴,分别为l、m、n根,二人轮流从三堆中的任一堆中取任意根火柴,谁取最后的火柴,谁胜。在残局的情况,l、m、n分别为8、4、1。
为了得到必胜的策略。第一步,我们把l、m、n分别表示为二进制数。在残局的情形就是1000、100、1三个数。
第二步,把三个数按位数对齐,每位相加。在残局的情形对应的是1101。从三堆中的某一堆中取适当数目的火柴,使剩下的三堆二进制表示的数位之和,每位都是偶数。在残局的情形,从8中取三,即剩101、100、1,这时的数位和是202。对应地就是边炮前进三步。试证明对于任意的l、m、n这总是能够做到的。
于是我们得到结论如下:如果甲轮到取火柴时,三个数的二进制数位和的每一位都是偶数,则他无论怎样取火柴,都会使数位和至少一位变为奇数。乙总可以适当取火柴使数位和恢复偶数。因为最后全取光时的数位和是偶数。所以甲是输定了的。如果甲轮到取火柴时,三个数的数位和,不全是偶数。我们说按照第二步的策略,甲肯定能够取得胜利。即最后一根火柴肯定是他取的。
这样分析后,这个残局对先走的人必胜策略就是很容易实现的了。
博弈论告诉我们,任何胜负分明没有和局的游戏,总存在对某一方必胜的策略。我们这个残局和对应的取火柴的游戏正是如此。而且数的二进制在这个残局和取火柴游戏的取胜策略中也得到巧妙的应用。