博弈初识

常见的3种博弈游戏:

nim game(异或理论):

m堆n个物品,两人轮流取,每次取某堆中不少于1个,最后取完者胜。
这个游戏的变量是堆数k,以及各堆的硬笔数n1,n2,n3---nk。要解决的问题是游戏人A获胜还是游戏人B获胜。假设A先取,B后。现在来研究策略:
特殊情况:当只剩一堆子,必是A获胜。
当剩下两堆子,如果n1!=n2,A从大堆中取子使得最后两堆子的个数相等。B取子后必然打破这种平衡态,再一次让n1!=n2,A重复刚刚的步骤,B也重复。最后可以推测出A取完一堆的子,两堆变成0,又达到平衡态,A获胜。
一般情况:有k堆子,各堆的个数是n1,n2,n3----nk。把所有的个数统统展开成2进制数:
n1=am---a2a1a0
n2=bm---b2b1b0
……          (例如:57=111001)
nk=wm---w2w1w0
设s0=a0+b0+……+w0;    s1=a1+b1+……+w1  ……  sm=am+bm+……+wm。
我们称si是偶数时为平衡态,是奇数时为非平衡态。于是当所有的对应位数和si是偶数时为平衡态,要是有一个si是奇数则为非平衡态。
对于一般情况:假设取子游戏是非平衡的,非平衡位是j位,A取子使得j位变回平衡态(要是有多个非平衡位就变多个对应位为平衡位)。B处在平衡态,他取子后必然会变成非平衡态,A重复刚刚的步骤,B也重复。最后可以推测出A取完一堆的子,两堆变成0,又达到平衡态,A获胜。

因此的到结论:游戏人A能够在非平衡态的nim取子游戏中获胜,而游戏人B能在平衡的nim取子游戏中获胜。

模拟一般情况:



计算模拟:

所有堆的子数的二进制异或是0(平衡态),A(先手)输。(用异或快速判断各位数字和奇偶性,0为偶,非0为奇)

所有堆的子数的二进制异或不是0,B(后手)输。

bash game(同余理论):

一堆n个物品,两人轮流取,每次取1至m个,最后取完者胜。



Wythoff Game(黄金分割):

两堆(ak,bk)(ak<=bk)个物品,两人轮流取,每次从一堆中取k个或者从2堆中同时取k个,最后面对(0,0)局面的输。



奇异局的判断:黄金比例是φ=1.618033 ,Ak=[k*φ],Bk=Ak+k=[k*φ*φ]

判断策略是 k = bk-ak ,如ak=k*φ时,当前局势为奇异局(必输局)。

如果堆中数量随机,先手一方优势很大。



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值