Nim游戏变形之一
来源:互联网 发布:网络相关法律 编辑:程序博客网 时间:2024/05/21 12:48
取走最后一颗石子的输。
刚一开始,我想可能要把sg的值变一下。原先sg(0)=0; 我想如果保持0为输态,那么sg(1)就应该是0,而sg(0)!=0; 但是sg函数怎么能随便改呢,sg不仅仅是个符号,他后面的性质和他的定义有密切的联系。
回顾sg:
sg游戏的特点是信息对称。所以每个状态的胜负确定。容易理解,双方都想赢,必输态肯定是子状态都是必胜态才行。不然,就可以找到一个必输态,从而是自己必胜。所以,必胜态就是能达到必输态的。必输态只能达到必胜态。从结果往前搜索自然可以把博弈树上的点的状态都找到。但是,时间空间开销太大。游戏图和游戏的描述应该是完全等价的。如果这样做时间效率低,说明图上一定是浪费了什么必要的信息。或者说求了没必要的信息。这个图有什么特点呢。博弈对象又有什么特点呢。
sg是一个从状态空间——》自然数的函数。自变量为当前状态,函数值等于mex(x的子状态),mex是定义在集合上的函数。为集合中不存在的最小自然数。sg的值,说明在这值之前的,当前状态都可达。
sg函数能把这个问题等价于子问题的异或和的形式。考虑多个游戏异并行的形式。每次只能改变一个子游戏的sg值。如果一开始或和为0,那么这次肯定不为零。如果一开始,不为零,那么总能有一个办法,让他为0;类比一下,0是输态,子态不由他确定,非0就是胜态,总能找到到达0的一个方法。
现在想想,在图上暴搜,是不是没有考虑到每一步只改变一个子游戏?
现在说变形的。
结论是在如果存在一堆石子大于1,那么结论不变。
如果都不大于1了,那么偶数个的时候应该必胜sg为0。
为啥大于1结论还是用呢? 比如就有一个大于1的,先手总是可以把它变为0或1,达到第二种情况。
如果有二个或两个以上的,那么sg变为0之后,应该至少还有两个大于1的。这样后手再次走的话,一定会走到sg不为零,且至少有一个大于1的。这不可能是终止状态。
sg不是0好在什么地方呢?他有决定权。
但是到了最后怎么样?只剩下一个的堆。那么sg最多为1,只能走0,决定权没了。终止态的sg是0,0是必胜态。
- Nim游戏变形之一
- Nim 游戏及其变形
- BOP - NIM游戏分析之一
- hdu5011(Nim游戏变形+证明)
- POJ 1704 Georgia and Bob (Nim游戏变形)
- POJ 1704 Georgia and Bob (博弈 Nim游戏变形)
- hdu 1907 John(组合游戏 NIM变形)@
- Nim博弈变形(anti-nim)
- Nim(Nim博弈变形)
- hdu 1907(NIM 变形)
- poj-1704 nim变形
- hdu1907John(NIM博弈变形)
- Nim游戏 Nim Game
- nim游戏
- Nim游戏
- NIM游戏
- Nim游戏
- Nim游戏
- 人生杂谈之:毕业后,班级的QQ群会这样发展
- 根据url提取网站域名的方法小结
- 偶然
- VC6.0的一些路径设置及常见错误Error spawning cl.exe的解决方法!
- /etc/group 与 /etc/gshadow (一)
- Nim游戏变形之一
- 图解USB 枚举
- JDK native2ascii工具用法
- WinAPI函数
- 急啊
- /etc/group 与 /etc/gshadow (二)
- 锥形物体的稳定和平衡
- 浅谈 c和c++ class和struct
- pku1088 滑雪(记忆化搜索)