编程之美 1.12 nim(2)

参考:http://tieba.baidu.com/p/613078798?pn=1

有若干堆石头,A,B分布依次取,一次只能选择一堆,从这堆中选择大于0的石头,问:1,如果最后取光石头的人获胜,A在什么情况下获胜?2,如果最后取光石头的人失败,A在什么情况下获胜?

1. 在规则1下,先手获胜的情况,在规则2下先手同样获胜

2. 规则1和规则2的取法不一样。

设当石头出现(1,1,1,…,X),x>1的情况下,称进入小卡区域。

规则1:

先手面临的局面必须是XOR(M1,M2,..,M3)!=0才能保证,先手获胜;此时,先手必须调整堆,使得XOR(M1,M2,..,M3)=0;这样就能保证先手最后获胜。

规则2:

先手面临的局面必须是XOR(M1,M2,..,M3)!=0才能保证,先手获胜;此时,先手必须调整堆,使得XOR(M1,M2,..,M3)=0;这样就能保证先手最后获胜。

大家可以看出规则1和规则2的策略是一样的,但是在规则2下,还要增加一个策略:当局面进入小卡区域时,当有偶数个1时,先手取x-1个石头;当有奇数个1时,先手取x个石头

但是有一个问题,如何保证当局面进入小卡区域时,正好该先手取?

    原文作者:sunmenggmail
    原文地址: https://blog.csdn.net/sunmenggmail/article/details/7726472
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞