随笔分类 -  博弈

Bash博弈,Nim博弈,Wythoff Game
摘要:http://poj.org/problem?id=2960POJ 2960 S-Nim大意:有n堆石子,每堆石子个数已知,两人轮流从中取石子,每次可取的石子数x满足x属于集合S(k) = {s1,s2,s3...sk-1},问先拿者是否有必胜策略?分析:1.可将问题转化为n个子问题,每个子问题分别为: 从一堆x颗石子中取石子,每次可取的石子数为集合S(k)中的一个数2.分析(1)中的每个子问题, 易得:SG(x) = mex(SG[x-s[i]])(0<i<k-1); 3.后面就是SG函数的应用,根据Sprague-Grundy Therem:g(G)=g(G1)^g(G2)^g 阅读全文
posted @ 2011-03-27 20:48 AndreMouche 阅读(1028) 评论(0) 推荐(0)
摘要:不记得是哪里搞的资料了,先贴上来再说,说我邪恶吧~~~~(>_<)~~~~ SG函数: 给定一个有向无环图和一个起始顶点上的一枚棋子,两名选手交替的将这枚棋子沿有向边进行移动,无法移动者判负。事实上,这个游戏可以认为是所有ImpartialCombinatorialGames的抽象模型。也就是说,任何一个ICG都可以通过把每个局面看成一个顶点,对每个局面和它的子局面连一条有向边来抽象成这个“有向图游戏”。下面我们就在有向无环图的顶点上定义Sprague-Garundy函数。首先定义mex(minimalexcludant)运算,这是施加于一个集合的运算,表示最小的不属于这个集合的非 阅读全文
posted @ 2011-03-27 19:07 AndreMouche 阅读(326) 评论(0) 推荐(0)
摘要:POJ 1704 Georgia and Bobhttp://poj.org/problem?id=1704大意:Georigia和Bob玩棋子游戏,棋子排成一行,类似于落入x坐标上,最左端为原点0所在位置,棋子i坐落于x轴上的chess[i](chess[i]>0)位置,游戏规则如下:1.每人每次可以且只能移动一个棋子2.每次移动棋子的格子数不限3.只能向左移动棋子4.移动过程中不能覆盖或越过其它棋子5.当谁没有棋子可以移动时,就输了6.两人轮流移动石子,女士优先,Georigia总是先移动7.最左端所在坐标为0,亦即放在1位置的棋子不能再往左移假设两人一样聪明,给定棋子的初始位置,判 阅读全文
posted @ 2011-03-27 10:35 AndreMouche 阅读(1185) 评论(0) 推荐(0)
摘要:引言:有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个人轮流从堆中取物体若干,规定最后取光物体者取胜。这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理。下面我们来分析一下要如何才能够取胜。(一)巴什博奕(BashGame):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果n=(m+1)r+s,(r为任意自然数,s≤m),那么先取者要拿走s个物品, 阅读全文
posted @ 2011-03-26 21:32 AndreMouche 阅读(525) 评论(0) 推荐(0)
摘要:POJ 1067 取石子游戏大意:有两堆石子,数量为A,B.两个玩家轮流从中取石子,每次可从一堆中取若干颗或从两堆中取相同数目石子,最后取完者为胜,问先取者是否有必胜策略?分析: 比较裸的威佐夫博奕(Wythoff Game) 有黄金分割知,不安全局面(an,bn)满足: an = floor(a*n),bn = floor(b*n); 其中: a = (1+sqrt(5))/2b = (3+sqrt(5))/2 在本题中,已知石子个数A,B,判断A,B是否能满足上述条件,即 若存在n能使得: floor(n*a)==A,floor(n*b)==B (1) 那么便必输,否则必胜 逆推上式,若存 阅读全文
posted @ 2011-03-26 21:06 AndreMouche 阅读(671) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2897HDU 2897 邂逅明下大意:一堆石子共有n个,A,B两人轮流从中取,每次取的石子数必须在[p,q]区间内,若剩下的石子数少于p个,当前取者必须全部取完。最后取石子的人输。给出n,p,q,问先取者是否有必胜策略?Bash博弈的变形假设先取者为A,后取者为B,初始状态下有石子n个,除最后一次每次取的石子个数必须在[p,q]区间内,则:1.若当前石子共有n = (p+q)*r个,则A必胜,必胜策略为: A第一次取q个,以后每次若B取k个,A取(p+q-k)个,如此最后必剩下p个给B,A胜2.若n = (p 阅读全文
posted @ 2011-03-26 10:10 AndreMouche 阅读(484) 评论(0) 推荐(0)