内容 |
请你与同伴一块玩个游戏。在桌上摆三小堆火柴,例如,分别是12、10和7根。然后,轮流从一堆火柴堆里取出火柴,可以取一根,也可以一次取完整堆火柴,可是不能一根不取。谁取完火柴,谁就赢了。例如,A、B两人轮流取火柴的变化是: 开始 12、10、7 A取1 12、10、6 B取3 12、7、6 A取11 1、7、6 B取2 1、5、6 A取2 1、5、4 B取2 1、3、4 A取2 1、3、2 B取1 1、2、2 A取1 0、2、2 B取1 0、1、2 A取1 0、1、1 B取1 0、0、1 最后取完火柴的是A,他获胜了。那么,A是否总能获胜呢? 这个问题的答案与二进制有关。把12、10、7分别用二进制表示: 12——1100, 10——1010, 7——111。 竖看这三个数的每一列,除最右边的一列外,都有两个1。A先取,只要 每次使每一列有两个1或者一个1也没有,就能获胜: 12——1100, 10——1010, 6——110。 A取1后,B取3,破坏了这个结果。A再取11,又恢复了这个结果: 1——1, 7——111, 6——110。 这以后,不管B怎么取,总要破坏这个结果;而A总可以恢复它,直到取得胜利。 由此可见,要是开始时的数组符合这个要求,并且两人都知道取胜诀窍,那么,总是先取数的人输,后取数的人赢了。在这种情况下,先取数的人,只好把希望寄托在对手出错。要是把火柴分成四堆、五堆或者更多的堆,不管每堆多少根,用这个办法也一样能取得胜利。
|