小结博弈

参考资料:https://www.cnblogs.com/kuangbin/archive/2011/08/28/2156426.html

一、巴什博奕

只有一堆物品,两人轮流取,每次最多m个,最少一个。最后取光者获胜

分析:假设共n个物品,n=m+1, 那么先手必败。所以为了先手必胜。可以把n表示为

n = k(m+1) + s  ,  s <= m

只要先手取s个,把数量维持到m+1的倍数即可。对方取r个,自己就取m+1-r个

 

二、威佐夫博弈

有两堆物品,两人轮流取,每次可以从一堆或两堆取相同数量物品,最少1个,最多不限,最后取光者获胜

分析:用(ak,bk)ak<bk, k=0,1,2,3……表示两堆的数量,也称局势

其中如果甲面对(0, 0)局势,那么甲已经输了,称奇异局势

前几个奇异局势:(0,0) (1,2)   (3,5)  (4, 7)  (6, 10)

其中ak就是前面未出现的最小数,bk = ak + k

可以看出奇异局势 有以下三种性质

①:任何自然数都包含在一个且仅有一个的奇异局势中

  证明:由于ak是没出现的最小数,所以ak>ak-1 而bk=ak+k>ak-1+k-1=bk-1>ak-1

②:任意操作都可以把奇异局势转化为非奇异局势

  证明:若只改变(ak,bk)的某个分量,那么另一个分量一定不在其他奇异局势里。所以必然是非奇异局势。

     如果使两个分量同时减少,由于差不变,肯定也是非奇异局势

③:适当操作就可以把非奇异局势转化为奇异局势

  证明有两个不懂。所以(证明见文顶参考资料)

 

从以上性质可知:面对非奇异局势,先手必胜;反之,后手必胜

现在问题就是 如果判断一个局势(a,b) 是不是奇异局势

深奥的看不是太懂,不过可以这样判断

已知 a < b, 奇异局势:a = k*1.618

k = b - a,  1.618=(sqrt(5)+1)/2;

 

三、尼姆博弈

有三堆物品,两人轮流从某一堆取任意多物品,每次至少一个,最后取光者获胜

 

分析:与二进制有关,用(a,b,c) 表示某种局势,首先(0,0,0) 是奇异局势,无论谁面对必败。

第二种奇异局势(0,n,n), 只要对手拿走一样多的物品,最后都将导致(0,0,0)。

仔细分析(1,2,3)也是奇异局势,无论谁拿,都会变为(0,n,n)

这里介绍异或运算 二进制对应位 不一样为1,一样为0

对于奇异局势 (0,n,n) 异或结果为0

对于任何奇异局势 (a,b,c)  a^b^c = 0

 

如果我们面对非奇异(a,b,c),要如何变为奇异局势? 

假设a<b<c 我们只虚把 c 变为 a^b 即可

所以就把c减去c-a^b

 

重点理解:取火柴游戏:

题目1:今有若干堆火柴,两人依次从中拿取,规定每次只能从一堆中取若干根, 
可将一堆全取走,但不可不取,最后取完者为胜,求必胜的方法。 
题目2:今有若干堆火柴,两人依次从中拿取,规定每次只能从一堆中取若干根, 
可将一堆全取走,但不可不取,最后取完者为负,求必胜的方法。

 

定义:若所有火柴数异或为0,则称为利他态,用T表示,否则就利己态 用S表示

因为谁面对异或为0, 就输了,所以是利他(对手)态

 

第一个题目:

定理一:对于任何一个S态,总能从一堆火柴中取出若干使之成为T态

证明:

  若有n堆火柴,每堆A(i) 根火柴,那么既然处于S态,

  c=A(1)^A(2)^……^A(n) > 0

  把c表示成二进制,记最高位为第p位,则必然存在一个A(t), 它的第p位也是1。

  那么我们把 x=A(t)^c , 则得到x<A(t),因为最高位同为1,肯定小了。所以x<A(t)

     A(1)^A(2)^……^x^……^A(n)

  = A(1)^A(2)^……^A(t)^c^……^A(n)

  = A(1)^A(2)^……^A(n)^A(1)^A(2)^……^A(n)

  = 0

  也就是说从A(t)中取出 A(t)-x 根火柴,会从S态变为T态。证毕。

 

定理二:T态,取任何一堆的若干根,都成为S态。

证明:

  反证法:c=A(1)^A(2)^……^A(i)^……^A(n)

  c'=A(1)^A(2)^……^A( i' )^……^A(n) 

  c ^ c' = A(1)^A(1)^A(2)^A(2)^……A(i)^A(i')^……^A(n)^A(n)=A(i)^A(i')=0

  推出A(i)=A(i'),与已知矛盾,所以命题得证

   

定理三:S态,只要方法正确,必胜

证明:

  最终胜利即由S态转化为T态,任何一个S态,只要把它变为T态(由定理一,S态可以变为T态),对于T态来说只能变为S态(由定理   二)。所以S态向T态都可以由自己控制,对方只能被动的实现T态变为S态。故S态必胜

 

定理四:T态,只要对方方法正确,必败

证明:

  由定理三易得。

总结:对于先取光胜利的博弈,S态必胜,T态必败。

 

第二个题目:

定义:若一堆中仅有1根火柴,称为孤单堆。若大于1根,则称为充裕堆

定义:T态中,若充裕堆的堆数大于等于2,称为完全利他态,用T2表示,若充裕堆为0,称为部分利他态,用T0表示

不会有T1的存在:因为孤单堆异或只会影响最后一位,一个充裕堆可以影响高位。所以异或和不会为0

 

定理五:S0态,即仅有奇数个孤单堆,必败。T0态必胜

证明:

  S0态就是每次只能取1根,奇数堆,肯定是自己取的最后一根。必败。

  同理 ,T0态必胜。

 

定理六:S1态,只要方法正确,必胜

证明:

  若此时孤单堆为奇数,把充裕堆取完,否则取剩1根。

 

定理七:S2态不可一次变为T0态

证明:

  充裕堆不可能一次由2变为0

 

定理八:S2态可一次变为T2态

证明:

  由定理一,S态可变为T态,又由定理七可知,S2态不可一次变为T0态,所以可一次变为T2态(T1不存在)

 

定理九:T2态,只能变为S2态或S1态

证明:

  由定理二,T态只能变为S态。由于充裕堆不可能一次由2变为0,所以S态不可能为S0态。

 

定理十:S2态,只要方法正确,必胜。

证明:

  1)  S2态,就变为T2态  (定理八)

  2)对方只能变为S2态或S1态 (定理九)

  若变为S2态,继续1)

  若变为S1态,S1必胜。

 

定理十一:T2态必输。

证明:

  由定理十易得。

 

总结:对于先取光失败的博弈,必胜态:S2、S1、T0、必败态:S0、T2

 

SG值内容留

 

  

 

 

  

 

posted @ 2019-02-13 19:21  Frontierone  阅读(200)  评论(0编辑  收藏  举报