博弈论

博弈论

巴什博弈(Bash Game)

只有一堆 n n n个物品,两个人轮流从这堆物品中取,规定每次至少取一个,最多取 m m m个,最后取光者得胜。
如果 n = ( m + 1 ) r + s , r n=(m+1)r+s,r n=(m+1)r+s,r为任意自然数, s ≤ m s\le m sm,那么先取者拿 s s s个,后取者拿 k ( ≤ m ) k(\le m) k(m)个,那么先取者再拿走 m + 1 − k m+1-k m+1k个,剩下 ( m + 1 ) ( r − 1 ) (m+1)(r-1) (m+1)(r1)个,那么先取者必胜当且仅当 s ≠ 0 s\ne 0 s=0。或者说当 n % ( m + 1 ) = = 0 n\%(m+1)==0 n%(m+1)==0时,后手必胜,否则,先手必胜。

反巴什博弈

最后取光者败;
等价于谁先取完 n − 1 n-1 n1个物品,谁胜。
( n − 1 ) % ( m + 1 ) = = 0 (n-1)\%(m+1)==0 (n1)%(m+1)==0时,后手必胜,否则,先手必胜。

威佐夫博弈(Wythoff Game)

由两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。
我们用 ( a [ k ] , b [ k ] ) (a[k],b[k]) (a[k],b[k])表示一个局势,如果一个人面对 ( 0 , 0 ) (0,0) (0,0),那他已经输了,称这种必败态为奇异局势。前几个奇异局势是: ( 0 , 0 ) , ( 1 , 2 ) , ( 3 , 5 ) , ( 4 , 7 ) , ( 6 , 10 ) , ( 8 , 13 ) , ( 9 , 15 ) , ( 11 , 18 ) , ( 12 , 20 ) (0,0),(1,2),(3,5),(4,7),(6,10),(8,13),(9,15),(11,18),(12,20) (0,0),(1,2),(3,5),(4,7),(6,10),(8,13),(9,15),(11,18),(12,20)
可以观察到 a [ 0 ] = b [ 0 ] = 0 a[0]=b[0]=0 a[0]=b[0]=0, a [ k ] a[k] a[k]是前面未出现过的最小自然数, b [ k ] = a [ k ] + k , k b[k]=a[k]+k,k b[k]=a[k]+k,k从0开始。
奇异局势有如下三个性质:
1、任何自然数都包含在一个且仅有一个奇异局势中。
2、任意操作都可将奇异局势变为非奇异局势。
3、采用适当的方法,可以将非奇异局势变为奇异局势。
结论:面对非奇异局势,先手必胜;否则,面对奇异局势,后手必胜。
那么怎么判断一个局势 ( a , b ) (a,b) (a,b)是否是奇异局势呢?我们有如下公式:
a [ k ] = ⌊ k 1 + 5 2 ⌋ , b [ k ] = a [ k ] + k , k = 0 , 1 , 2 , … … , n a[k]=\lfloor{k\frac{1+\sqrt{5}}{2}}\rfloor,b[k]=a[k]+k,k=0,1,2,……,n a[k]=k21+5 ,b[k]=a[k]+k,k=0,1,2,,n

尼姆博弈

任意堆石子,每次可以取任意的石子,至少一个(不能不取),最后一个拿光石子的人胜利。
每个石子堆的 S G SG SG值就是 a [ i ] a[i] a[i],所以结论为:
a [ 1 ] ⊕ a [ 2 ] ⊕ … ⊕ a [ n ] ! = 0 a[1]\oplus a[2]\oplus…\oplus a[n]!=0 a[1]a[2]a[n]!=0,先手必胜;否则后手必胜。

反尼姆博弈

先取完者判输:
结论:统计一下所有数大于1的个数,并将所有数字异或一遍,若大于1的个数为0&&异或和为0||大于1的个数大于0&&异或和不为0,则先手胜,否则后手胜。

其他变形

1、限制最多取的个数,例如第 i i i堆石子共有 m m m个,最多取 r r r个,先对 m = m % ( r + 1 ) m=m\%(r+1) m=m%(r+1);然后再进行异或求和;
2、先手的人想赢,第一步有多少种选择。当先手必输时,很显然是0。如果先手赢,那么先手必须努力创造奇异局势,即让其剩余的石子量异或和为0。我们首先求出所有堆异或后的值 s u m sum sum,再用这个值去对每一个堆进行异或,令 r e s = x 1 ⊕ s u m res=x_1\oplus sum res=x1sum,( s u m sum sum是所有堆的异或和)。如果 r e s < x 1 res<x_1 res<x1的话,当前玩家就从 x 1 x_1 x1中取走 ( x 1 − r e s ) (x_1-res) (x1res)个,使 x 1 x_1 x1乘下 r e s res res这样必然导致所有的堆的异或值为0,也就是必败点(达到奇异局势),这就是一种方案。遍历每一个堆,进行上面的判断就可以得到总的方案数。

斐波那契博弈

有一堆个数为 n n n的石子,游戏双方轮流取石子,满足:
(1)先手不能在第一次把所有的石子取完;
(2)之后每次可以取的石子数介于1到对手刚取的石子数的2倍之间(包含1和对手刚取的石子数的2倍)
取走最后一个石子的人为赢家,求必败态。
结论:先手必胜当且仅当 n n n不是Fibonacci数,或者说,必败态构成Fibonacci数列
Zeckendorf定理:任何正整数可以表示为若干个不连续的Fibonacci数之和。

SG函数

必胜点和必败点的概念:
P点:必败点;
N点:必胜点;
性质:
1、所有终结点是必败点P;
2、从任何必胜点N操作,至少有一种方式可以进入必败点P;
3、无论如何操作,必败点P都只能进入必胜点N。

SG定理:

游戏和的SG函数等于各个游戏SG函数的Nim和。

SG函数:

首先定义 m e x mex mex运算,表示最小的不属于这个集合的非负整数。例如 m e x { 0 , 1 , 2 , 4 } = 3 mex\{0,1,2,4\}=3 mex{0,1,2,4}=3 m e x { 2 , 3 , 5 } = 0 mex\{2,3,5\}=0 mex{2,3,5}=0 m e x { } = 0 mex\{\}=0 mex{}=0
对于任意状态 x x x,定义 S G ( x ) = m e x ( S ) SG(x)=mex(S) SG(x)=mex(S),其中 S S S x x x后继状态的SG函数值的集合。如 x x x有三个后继状态分别为 S G ( a ) , S G ( b ) , S G ( c ) , SG(a),SG(b),SG(c), SG(a),SG(b),SG(c)那么 S G ( x ) = m e x { S G ( a ) , S G ( b ) , S G ( c ) } SG(x)=mex\{SG(a),SG(b),SG(c)\} SG(x)=mex{SG(a),SG(b),SG(c)}。这样集合 S S S的终态必然是空集,所以 S G SG SG函数的终态为 S G ( x ) = 0 SG(x)=0 SG(x)=0,当且仅当 x x x为必败点P时。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值