用二进制表示3,5,7,排列如下:
3 5 7
模2加(异或)结果
0 1 1 0
1 0 1 0
1 1 1 1
因为最终状态应为:
模2加(异或)结果
0 0 0 0
0 0 0 0
0 0 0 0
先拿者可以将这3行的异或结果全部变成0,这里要动脑筋了,
找到第一行异或结果不为0的行,在此行中为1的堆就可以了
,而无论后拿者怎么拿,这3行异或结果
必然不会全为0,也就是不可能全拿完。如此下去,先拿者
必胜。
显然,此方法可以推广到任意堆数,任意棋子数的情况。
当然,如果初始的异或结果为0的话,后拿者胜。
Or
先来看,获胜的棋局,*,*,0(两个*代表相同得值)可以赢,让后进行递推,
可以发现,1,2,3;1,4,5;1,6,7为获胜局,带有获胜局两个相同数直,
和一个非获胜局数字的为必败局,
然后,再递推,2,4,6为获胜局,2,5,7为 获胜局,
所以,好办了!只需在棋数为3的那一堆,拿一个,即可!
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。