必胜点和必败点的概念:

       P点:必败点,换而言之,就是谁处于此位置,则在双方操作正确的情况下必败。
       N点:必胜点,处于此情况下,双方操作均正确的情况下必胜。
必胜点和必败点的性质:
        1、所有终结点是 必败点 P 。(我们以此为基本前提进行推理,换句话说,我们以此为假设)
        2、从任何必胜点N 操作,至少有一种方式可以进入必败点 P。
        3、无论如何操作,必败点P 都只能进入 必胜点 N。
下面通过例子介绍SG函数

定义mex(minimal excludant)运算,这是施加于一个集合的运算,表示最小的不属于这个集合的非负整数。例如mex{0,1,2,4}=3、mex{2,3,5}=0、mex{}=0。

对于任意状态 x , 定义 SG(x) = mex(S),其中 S 是 x 后继状态的SG函数值的集合。如 x 有三个后继状态分别为 SG(a),SG(b),SG(c),那么SG(x) = mex{SG(a),SG(b),SG(c)}。

对于SG函数有特殊的性质:

没有出边的点的SG值=0

对于可以到达SG=0的点的SG值>0

对于不能到达SG=0的点的SG值=0

和最开始的必胜态N和必败态P性质类似

必败态就是没有出边的点,SG = 0

可以到达必败态的点就是必胜态(SG>0)

不能到达必败态的点就是必败态(也就是说只能到达必胜态的点就是必败态,SG = 0)

多维度的情况

这里就是SG定理的运用:

游戏和的SG函数等于各个游戏SG函数的Nim和。这样就可以将每一个子游戏分而治之,从而简化了问题。而Bouton定理就是Sprague-Grundy定理在Nim游戏中的直接应用,因为单堆的Nim游戏 SG函数满足 SG(x) = x。

最新文章

  1. 算法与数据结构(十六) 快速排序(Swift 3.0版)
  2. hdu1087 dp
  3. 5.Struts2中的拦截器
  4. C++类编程(一)const的使用
  5. demo06
  6. caffe: fuck compile error again : error: a value of type "const float *" cannot be used to initialize an entity of type "float *"
  7. android,view的执行过程onDraw、onSizeChanged,onFinishInflate
  8. C#和NewSQL更配 —— TiDB入门(可能是C#下的全网首发)
  9. AI应用开发实战 - 从零开始配置环境
  10. ACM(数学问题)——UVa202:输入整数a和b(0≤a≤3000,1≤b≤3000),输出a/b的循环小数表示以及循环节长度。
  11. SAP PA认证
  12. python魔法方法:__getattr__,__setattr__,__getattribute__
  13. CMS垃圾收集器与G1收集器
  14. (转!)大话websocket
  15. C#累加器函数Aggregate用法 讲解
  16. 嵌入式设备hacking(转)
  17. [转]GeoServer地图开发解决方案(一):环境搭建篇
  18. Nodejs关闭windows服务进程
  19. JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(3):常用动态代理之JDK动态代理、CGLIB动态代理
  20. Greenplum中角色权限及客户端认证管理

热门文章

  1. java中的各种命令参数
  2. NOI 2018 酱油记
  3. 了解下C#异常时的输出
  4. VirtualBox-4.3.0启动报错及解决办法
  5. document.getElementsByTagName
  6. Android的消息机制简单总结
  7. 第八章.Java集合
  8. 【转】JSON.parse()与JSON.stringify()的区别
  9. easyui window窗口 随body的滚动条 滚动
  10. CentOS 7运维管理笔记(10)----MySQL源码安装