一、定义

Anti-Nim 游戏:

取走最后一个石子的玩家输

Multi-Nim游戏:

每次取完后可以将一堆石子分为多堆,不能存在空堆

Multi-Anti-Nim游戏:

每次取完后可以将一堆石子分为多堆,不能存在空堆,取走最后一个石子的玩家输

二、Anti-Nim游戏结论及其证明

若局面满足以下两个条件中的1个,则先手必胜;否则,先手必败

1、局面的SG不为0,且至少存在一个子局面的SG>1

2、局面的SG为0,不存在子局面的SG>1

情况1:局面的SG!=0,至少存在一个子局面的SG>1

根据Nim取石子游戏的证明可知

一定存在一种方案,使后手面临局面SG=0

(将SG最大的子局面的SG变成局面SG^自己的SG即可)

先手选择让后手面临SG=0

(1)只有一个子局面的SG>1,那么先手可以选择将这一个子局面的SG变成0或者1,

后手面临局面有偶数个SG=1的子局面

局面SG=0,不存在一个子局面的SG>1,这是一个必败局面

所以先手必胜

(2)有两个或以上的子局面的SG>1,先手至多可以使一个子局面的SG<=1,

后手面临局面SG=0,存在子局面的SG>1,这是必败局面

所以先手必胜

情况2:局面的SG!=0,不存在子局面的SG>1

这种情况是奇数个SG=1的局面

那么只能转移到偶数个SG=1的局面

后手面临局面的SG为0,不存在子局面的SG>1,这是一个必胜局面

所以先手必败

情况3:局面的SG=0,不存在子局面的SG>1

这种情况是偶数个SG=1的局面

只能转移到奇数个SG=1的局面

后手面临局面的SG不为0,不存在子局面的SG>1,这是一个必败局面

所以先手必胜

情况4:局面的SG=0,存在子局面的SG>1

这种情况下,至少有两个子局面的SG>1

只能转移到局面的SG!=0,存在子局面的SG>1

后手面临必胜局面

所以先手必败

三、Multi-Anti-Nim游戏结论不变证明

结论:

同Anti-Nim游戏

证明:

只考虑先手必败局面

情况2:

因为不能分出SG=0的子局面,所以这种情况下无法局面无法再分

情况4:

即证明 子局面分裂之后的异或和 仍然不为0

同Anti-Nim游戏证明,详请参见http://www.cnblogs.com/TheRoadToTheGold/p/8618228.html

Multi-Anti-Nim游戏结论及证明的更多相关文章

  1. 关于NIM博弈结论的证明

    关于NIM博弈结论的证明 NIM博弈:有k(k>=1)堆数量不一定的物品(石子或豆粒…)两人轮流取,每次只能从一堆中取若干数量(小于等于这堆物品的数量)的物品,判定胜负的条件就是,最后一次取得人 ...

  2. Multi-Nim游戏结论不变证明

    Nim取石子游戏结论: 若n堆石子的异或和为0,则先手必胜:否则,先手必败 加入新规则: 每次取完石子后,可以将取的那一堆的石子 分为多堆,也可以不分 结论: 同Nim取石子游戏结论 证明: 如果异或 ...

  3. $NIM$游戏小总结

    $umm$可能之后会写个博弈论总结然后就直接把这个复制粘贴上去就把这个删了 但因为还没学完所以先随便写个$NIM$游戏总结趴$QAQ$ 首先最基础的$NIM$游戏:有$n$堆石子,每次可以从一堆中取若 ...

  4. 编程之美----NIM游戏

    : 博弈游戏·Nim游戏 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 今天我们要认识一对新朋友,Alice与Bob.Alice与Bob总是在进行各种各样的比试,今天他 ...

  5. [hihoCoder] 博弈游戏·Nim游戏

    时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 今天我们要认识一对新朋友,Alice与Bob.Alice与Bob总是在进行各种各样的比试,今天他们在玩一个取石子的游戏.在 ...

  6. (转载)Nim游戏博弈(收集完全版)

    Nim游戏的概述: 还记得这个游戏吗?给出n列珍珠,两人轮流取珍珠,每次在某一列中取至少1颗珍珠,但不能在两列中取.最后拿光珍珠的人输.后来,在一份资料上看到,这种游戏称为“拈(Nim)”.据说,它源 ...

  7. Nim游戏(组合游戏Combinatorial Games)

    http://baike.baidu.com/view/1101962.htm?fr=aladdin Nim游戏是博弈论中最经典的模型(之一),它又有着十分简单的规则和无比优美的结论 Nim游戏是组合 ...

  8. hihocoder 1163 博弈游戏·Nim游戏

    1163 : 博弈游戏·Nim游戏 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 今天我们要认识一对新朋友,Alice与Bob. Alice与Bob总是在进行各种各样的 ...

  9. Nim游戏博弈

    Nim游戏的概述: 还记得这个游戏吗? 给出n列珍珠,两人轮流取珍珠,每次在某一列中取至少1颗珍珠,但不能在两列中取.最后拿光珍珠的人输. 后来,在一份资料上看到,这种游戏称为"拈(Nim) ...

随机推荐

  1. 服务器端发送邮件签名采用Data URI scheme包含图片

    要在服务器端基于HTML,拼接邮件内容,原来用户使用outlook采用了邮件签名,签名里含有公司Logo的图片,Outlook的msg文件里是专有的cid:xxxx,这里借用Data URI sche ...

  2. [转帖]Windows7 结束更新 以及后期更新花费。

    你不应该为Windows 7更新付费的三个原因 https://www.linuxidc.com/Linux/2019-02/156777.htm 对Windows 7的支持将在2020年1月结束,这 ...

  3. [转载] Oracle在windows下面的自动备份以及删除今天的脚本..

    @echo off echo ================================================ echo Windows环境下Oracle数据库的自动备份脚本 echo ...

  4. 关于python requests 包跑ssl的设置 和 charles相关抓包的问题

    由于在测试服务器上测试东西都是https,然后最近又在和大神一起开发openapi,api写好当然是要测试的 python上测试接口最好用的莫过于requests模块了.但是 我还从来没有用reque ...

  5. codeforces622B

    The Time CodeForces - 622B 给你当前的时间(24小时制):HH:MM.输出 x 分钟后的时间是多少?(24小时制) 不明白可以看看例子哦- Input 第一行给出了当前时间, ...

  6. Python面向对象静态方法,类方法,属性方法

    Python面向对象静态方法,类方法,属性方法 属性: 公有属性 (属于类,每个类一份) 普通属性 (属于对象,每个对象一份) 私有属性 (属于对象,跟普通属性相似,只是不能通过对象直接访问) 方法: ...

  7. BZOJ1552[Cerc2007]robotic sort&BZOJ3506[Cqoi2014]排序机械臂——非旋转treap

    题目描述 输入 输入共两行,第一行为一个整数N,N表示物品的个数,1<=N<=100000. 第二行为N个用空格隔开的正整数,表示N个物品最初排列的编号. 输出 输出共一行,N个用空格隔开 ...

  8. HDU - 1260 (Tickets)

    题意:  买票    一个人要么自己买  要么和前面的人一起买   这两种情况分别有一个买票所花费的时间  求总的花费时间最小 解析: dp[i] 表示前i个人买票总的花费时间 v[i]表示第i个人买 ...

  9. HNOI2017影魔

    影魔 这么简单的方法尽然想不到,我是真的菜 对每个点,用单调栈的方式处理出他左右第一个比他大的数的位置,你可以把\(0\)和\(n+1\)设成\(inf\). 显然对于每对\(lef[i]\)和\(r ...

  10. 【BZOJ1856】[SCOI2010]字符串(组合数学)

    [BZOJ1856][SCOI2010]字符串(组合数学) 题面 BZOJ 洛谷 题解 把放一个\(1\)看做在平面直角坐标系上沿着\(x\)正半轴走一步,放一个\(0\)看做往\(y\)轴正半轴走一 ...