操作系统寒武纪 - 会让企业IT高兴吗?
568
2022-11-09
博弈初识
常见的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*φ时,当前局势为奇异局(必输局)。
如果堆中数量随机,先手一方优势很大。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~