博弈类型

巴什博弈

\(n\)个石子,两个人轮流取石子,每次只能取\([1,m]\)个,没有石子可取的一方失败,判断胜败
判断方法
\(r=n%(m+1)\)\(r\)不为零,先手胜,\(r\)为零,后手胜

威佐夫博弈

有两堆石子,每个人轮流从任意一堆中取出至少一个或者同时从两堆中取出同样多个石子,没有石子可取的一方失败,判断胜败
判断方法
部分先手必输的局势:
\((0,0)\)
\((1,2)\)
\((3,5)\)
\((4,7)\)
\((6,10)\)
\((8,13)\)
\((9,15)\)
\((11,18)\)
这些局势成为奇异局势,每种奇异局势的第一个值等于当前差值乘上\(1.618((1+\sqrt 5)/2)\)
设第一堆石子数量为\(a[k]\),第二堆石子数量为\(b[k]\)\(a[k]\leq b[k]\)
也就是\(a[k]=(int)((b[k]-a[k])*((1+\sqrt 5)/2))\)

NIM博弈

NIM博弈是指有\(n\)堆石子,每堆石子有\(a_i\)颗,两个人轮流从任意一堆石子\(i\)中取走\(x\)\((1\leq x\leq a_i)\),没有石子可取的一方失败,判断胜败
判断方法
判断NIM博弈的胜败采用异或运算:
必胜态:\(a_1\ XOR\ a_2\ XOR\ a_3\ XOR \cdots XOR\ a_n \neq 0\)
必败态:\(a_1\ XOR\ a_2\ XOR\ a_3\ XOR \cdots XOR\ a_n = 0\)
简要证明
首先从XOR为零的状态拿走任意颗石子,一定会转移到XOR不为零的状态,所以从必败态只能转移到必胜态。
下面证明从必胜态也可以转移到必败态。
\(a_1\ XOR\ a_2\ XOR\ a_3\ XOR \cdots XOR\ a_n = k(k\neq 0)\),选取\(k\)的最高位为1的一堆石子\(a_i\),由于\(a_i\ XOR\ k\)之后,最高位的1没有了,所以\(a_i\ XOR\ k<a_i\),所以可以从\(a_i\)中选择一定数量的石子,使得剩下的石子个数为\(a_i\ XOR\ k\),这样\(a_1\ XOR\ a_2\ XOR\ a_3\ XOR \cdots XOR\ (a_i\ XOR\ k)\cdots XOR\ a_n = 0\),所以由必胜态可以转移到必败态。

posted @ 2020-07-30 16:14  fxq1304  阅读(213)  评论(0编辑  收藏  举报