ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

NIM游戏

2022-07-20 02:01:08  阅读:154  来源: 互联网

标签:台阶 游戏 奇数 石子 异或 NIM sg


注意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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有