Multi-Anti-Nim游戏结论及证明
一、定义
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游戏结论及证明的更多相关文章
- 关于NIM博弈结论的证明
关于NIM博弈结论的证明 NIM博弈:有k(k>=1)堆数量不一定的物品(石子或豆粒…)两人轮流取,每次只能从一堆中取若干数量(小于等于这堆物品的数量)的物品,判定胜负的条件就是,最后一次取得人 ...
- Multi-Nim游戏结论不变证明
Nim取石子游戏结论: 若n堆石子的异或和为0,则先手必胜:否则,先手必败 加入新规则: 每次取完石子后,可以将取的那一堆的石子 分为多堆,也可以不分 结论: 同Nim取石子游戏结论 证明: 如果异或 ...
- $NIM$游戏小总结
$umm$可能之后会写个博弈论总结然后就直接把这个复制粘贴上去就把这个删了 但因为还没学完所以先随便写个$NIM$游戏总结趴$QAQ$ 首先最基础的$NIM$游戏:有$n$堆石子,每次可以从一堆中取若 ...
- 编程之美----NIM游戏
: 博弈游戏·Nim游戏 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 今天我们要认识一对新朋友,Alice与Bob.Alice与Bob总是在进行各种各样的比试,今天他 ...
- [hihoCoder] 博弈游戏·Nim游戏
时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 今天我们要认识一对新朋友,Alice与Bob.Alice与Bob总是在进行各种各样的比试,今天他们在玩一个取石子的游戏.在 ...
- (转载)Nim游戏博弈(收集完全版)
Nim游戏的概述: 还记得这个游戏吗?给出n列珍珠,两人轮流取珍珠,每次在某一列中取至少1颗珍珠,但不能在两列中取.最后拿光珍珠的人输.后来,在一份资料上看到,这种游戏称为“拈(Nim)”.据说,它源 ...
- Nim游戏(组合游戏Combinatorial Games)
http://baike.baidu.com/view/1101962.htm?fr=aladdin Nim游戏是博弈论中最经典的模型(之一),它又有着十分简单的规则和无比优美的结论 Nim游戏是组合 ...
- hihocoder 1163 博弈游戏·Nim游戏
1163 : 博弈游戏·Nim游戏 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 今天我们要认识一对新朋友,Alice与Bob. Alice与Bob总是在进行各种各样的 ...
- Nim游戏博弈
Nim游戏的概述: 还记得这个游戏吗? 给出n列珍珠,两人轮流取珍珠,每次在某一列中取至少1颗珍珠,但不能在两列中取.最后拿光珍珠的人输. 后来,在一份资料上看到,这种游戏称为"拈(Nim) ...
随机推荐
- docker网络调试过程
#1: 添加永久网桥 vi /etc/sysconfig/network-scripts/ifcfg-br0 DEVICE=br0 TYPE=Bridge BOOTROTO=static IPADDR ...
- 如何自定义一个组件loading
使用时需要Vue.use()一下
- CS、IP和PC寄存器
CS寄存器和IP寄存器: 首先强调一下,这两个寄存器非常非常重要,CS的全拼为“Code segment”,即代码段寄存器,对应于内存中的存放代码的内存区域,用来存放内存代码段区域的入口地址(段基址) ...
- MSTSC 3389 端口修改
1. 启动注册表编辑器. 2. 找到并单击以下注册表子项: 3. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server ...
- Angular 简单的Post
<!DOCTYPE html><html ng-app="myApp"><head lang="en"> <meta ...
- 好文章系列C/C++——图说C++对象模型:对象内存布局详解
注:收藏好文章,得出自己的笔记,以查漏补缺! ------>原文链接:http://blog.jobbole.com/101583/ 前言 本文可加深对C++对象的内存布局.虚表指针.虚 ...
- IDEA Maven 项目默认编译项目为JDK 1.5
昨天晚上遇到一个问题,我在idea中创建了有个maven项目,想使用jdk1.8的lambda表达式,结果提示我错误,是1.8才可以.当时我想我的jdk就是1.8啊.经过各种搜索,才知道maven默认 ...
- grep 匹配打印的上下几行
如果在只是想匹配模式的上下几行,grep可以实现. $grep -5 'parttern' inputfile //打印匹配行的前后5行 $grep -C 5 'parttern' input ...
- linux系统下find命令的使用
1.find /* -name erlang 当前目录下,查找名为erlang的文件和目录 find /* -name rabbitmq-server 当前目录下,查找名为 rabbitmq-serv ...
- 关于mysql的压测sysbench
测试表格:CREATE TABLE `sbtest` ( `id` int(10) unsigned NOT NULL auto_increment, `k` int(10) unsigned NOT ...