sg函数入门理解】的更多相关文章

首先理解sg函数必须先理解mex函数 mex是求除它集合内的最小大于等于0的整数,例:mex{1,2}=0:mex{2}=0:mex{0,1,2}=3:mex{0,5}=1. 而sg函数是啥呢? 对于任意状态 x , 定义 sg(x) = mex(f),其中f 是 x 后继状态的sg函数值的集合(就是上述mex中的数值).最后返回值(也就是sg(x))为0为必败点,不为零必胜点. 看不懂,咱直接来个例子: 例如:取石子问题,有1堆n个的石子,每次只能取{1,3,4}个石子,先取完石子者胜利,那么…
最近学习了nim博弈,但是始终无法理解sg函数为什么sg[S]=mex(sg[S'] | S->S'),看到一篇博文解释的不错,截取了需要的几章节. 四.Sprague-Grundy数的提出 我们以Flip Game为例,研究一下胜态还有什么更深入的性质. 状态“++”是最简单的胜态,它只有一种走法,结果是败态.状态“+++”跟“++”在这一点上是一样的,因此它们其实是等价状态.状态“++++”就有两种不同的走法(对称的走法算同一种):一是把中间两个加号变成减号,这样得到的次态“+--+”是个败…
转载自知乎牛客竞赛——博弈论入门(函数讲解+真题模板) SG函数 作用 对于一个状态i为先手必胜态当且仅当SG(i)!=0. 转移 那怎么得到SG函数尼. SG(i)=mex(SG(j))(状态i可以通过一步转移到j) 首先说一下mex.一个集合的mex是最小的没有出现在这个集合里的非负整数. 其实想一下这个也是挺明显的.状态i是先手必败态当前仅当i转移到的状态都是先手必胜态.同样,只要当前状态可以转移到一个先手必败态,那么当前就是先手必胜态. 小定理 对于两个独立的游戏A,B,他们的SG函数=…
sg,是用来判断博弈问题的输赢的,当sg值为0的时候,就是输,不为0就是赢: 在这之前,我们规定一个对于集合的操作mex,表示最小的不属于该集合的非负整数. 举几个栗子:mex{0,1,2}=3,mex{1,2,3}=0,mex{0,1,3}=2: 而我们要求的sg的值就和这个有关,定义SG函数:SG(x)=mex{ SG(y) | y是x的后继,也就是经过操作可以取得的剩下值 }. 举个栗子:比如一堆石子,我们可以取任意个,那么x个石子的石子的sg值是多少呢? 可以知道,0个石子sg为0,一的…
思路:SG打表 参考:SG函数和SG定理[详解] 代码: #include<queue> #include<cstring> #include<set> #include<map> #include<stack> #include<cmath> #include<vector> #include<cstdio> #include<iostream> #include<algorithm>…
SG函数 sg[i]为0表示i节点先手必败. 首先定义mex(minimal excludant)运算,这是施加于一个集合的运算,表示最小的不属于这个集合的非负整数.例如mex{0,1,2,4}=3.mex{2,3,5}=0.mex{}=0. 对于一个给定的有向无环图,定义关于图的每个顶点的Sprague-Grundy函数g如下:g(x)=mex{ g(y) | y是x的后继 },这里的g(x)即sg[x] 例如:取石子问题,有1堆n个的石子,每次只能取{1,3,4}个石子,先取完石子者胜利,那…
sg[i]为0表示i节点先手必败. 首先定义mex(minimal excludant)运算,这是施加于一个集合的运算,表示最小的不属于这个集合的非负整数.例如mex{0,1,2,4}=3.mex{2,3,5}=0.mex{}=0. 对于一个给定的有向无环图,定义关于图的每个顶点的Sprague-Grundy函数g如下:g(x)=mex{ g(y) | y是x的后继 },这里的g(x)即sg[x] 例如:取石子问题,有1堆n个的石子,每次只能取{1,3,4}个石子,先取完石子者胜利,那么各个数的…
链接: http://acm.hdu.edu.cn/showproblem.php?pid=1846 首先来玩个游戏,引用杭电课件上的: (1) 玩家:2人:(2) 道具:23张扑克牌:(3) 规则:游戏双方轮流取牌:每人每次仅限于取1张.2张或3张牌:扑克牌取光,则游戏结束:最后取牌的一方为胜者. 想一下.. 首先申明一点,博弈的讨论是在大家都玩的最好的情况下讨论的.(如果2个玩家智商有差别,那就没法讨论了----开个玩笑哈.) 介绍概念:P点 即必败点,某玩家位于此点,只要对方无失误,则必败…
D - Partitioning Game Time Limit:4000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu Submit Status Description Alice and Bob are playing a strange game. The rules of the game are: Initially there are n piles. A pile is formed by some cell…
SG函数 个人理解:SG函数是人们在研究博弈论的道路上迈出的重要一步,它把许多杂乱无章的博弈游戏通过某种规则结合在了一起,使得一类普遍的博弈问题得到了解决. 从SG函数开始,我们不再是单纯的同过找规律等方法去解决博弈问题,而是需要学习一些博弈论中基本的定理,来找到他们的共同特点 那么就先介绍几个最基本的定理(也可以叫常识)吧 基本定理 ICG游戏 1.游戏有两个人参与,二者轮流做出决策.且这两个人的决策都对自己最有利. 2.当有一人无法做出决策时游戏结束,无法做出决策的人输.无论二者如何做出决策…