NIM游戏
作者:互联网
注意NIM里面取走的石子 不一定是减去 根据题意 如果是整除 那可能是除去
可以拿走从任意一个堆 取走任意的石子,取走最后一个石子胜利 NIM博弈
对于先手:永远将奇数台阶保持不变 我永远看到奇数层不一致的 对手看到永远是 一致的
先手必胜需要每个值异或不等0 这样留给后手操作的就是每个值异或等于0 操作完不为0的情况
NIM-K:可以从多个堆 最多k堆里面取走石子:取走最后一个石子失败
反NIM 取走最后一个的人输
// 先手必胜条件
// 1. 石子数异或和为 0 , 所有石子数等于 1
// 2. 异或和不为 0 ,且有数大于 1
取走n=a1a2a3的石头的操作是什么我们不管 我们只需要管石子数是什么 这里的石子数是这个质数的阶数
一个质因数看成一堆石子 每一堆数字有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