其他分享
首页 > 其他分享> > NIM游戏

NIM游戏

作者:互联网

注意NIM里面取走的石子 不一定是减去 根据题意 如果是整除 那可能是除去

可以拿走从任意一个堆 取走任意的石子,取走最后一个石子胜利 NIM博弈

对于先手:永远将奇数台阶保持不变 我永远看到奇数层不一致的 对手看到永远是 一致的
先手必胜需要每个值异或不等0 这样留给后手操作的就是每个值异或等于0 操作完不为0的情况

NIM-K:可以从多个堆 最多k堆里面取走石子:取走最后一个石子失败

反NIM 取走最后一个的人输

   // 先手必胜条件
    // 1. 石子数异或和为 0 , 所有石子数等于 1
    // 2. 异或和不为 0 ,且有数大于 1 

取走n=a1a2a3的石头的操作是什么我们不管 我们只需要管石子数是什么 这里的石子数是这个质数的阶数

https://ac.nowcoder.com/acm/contest/view-submission?submissionId=52776065&returnHomeType=1&uid=492489793

一个质因数看成一堆石子 每一堆数字有k个 
存在石子数大于1的堆就是 存在比根号n要大的因数
存在石子堆数字相异或不等于0 就是ans从0开始异或因数出现的个数

可以拿走规定数量的石子放到别的石子数量上 台阶-NIM

对于先手:永远将奇数台阶保持不变 我永远看到奇数层不一致的 对手看到永远是 一致的(为输的局面)
奇数台阶石子数量是0 先手必败 不是0 先手必胜
对手从偶数层台阶 拿多少石子到奇数层台阶 我就把哪些石子拿到下层保持奇数级台阶不变

max函数 找到可以达到的情况没有的最小自然数
sg函数 sg(终点)=0 为无法操作的情况(无出边) sg()!=0 那么下一条路粗存在一种情况让sg()=0即让对手到达这个终点的情况

可以取走规定数量的石子

反nim: nim是不能拿为输 反nim是取走最后一个是自己的人输掉

先手必胜条件

以下两个条件满足其一即可(事实上你并不可能同时满足233):
所有堆的石子个数=1,且异或和=0(其实这里就是有偶数堆的意思)。
至少存在一堆石子个数>1,且异或和≠0。

标签:台阶,游戏,奇数,石子,异或,NIM,sg
来源: https://www.cnblogs.com/liang302/p/16496402.html