ACM常见博弈(更新中)

巴什博弈(Bash Game)

题意:n 个石子,两人轮流取,可以自己挑选 1 到 m 个,谁取完最后一堆谁获胜.

结论:

n%(m+1)==0n \% (m+1)==0n%(m+1)==0 先手必败,否则必胜


尼姆博弈论(Nimm Game)

题意:n 堆石子,每堆石子有a[i]个,每人轮流取,每次取某堆石子至少一个,最后取完者胜。

结论

a1a2....ana_{1} \bigoplus a_{2} \bigoplus.... \bigoplus a_{n}a1​⨁a2​⨁....⨁an​不为0,则先手必胜,反之先手必败

证明

在此贴上大佬的博客
https://blog.csdn.net/k_koris/article/details/81743806

延伸

三堆石子a,b,c 且 a>b>c;
如果a ^ b ^ c不为0,则当前人必胜,令a=b ^ c;
则实现转移


威佐夫博奕(Wythoff Game)

题意:有两堆石子,有两种取法:
1.从一堆石子取走任意多颗(>=1)
2.从两堆石子取走相同的任意多颗(>=2)
最后取完者胜

结论

ak=k(1+5)2bk=ak+kk=012,n)a_{k} =\left \lfloor \frac{k*(1+ \sqrt{5} )}{2} \right \rfloor,b_{k}= a_{k} + k (k=0,1,2,…,n 方括号表示向下取整)ak​=⌊2k∗(1+5​)​⌋,bk​=ak​+k(k=0,1,2,…,n方括号表示向下取整)

若满足上述状态,必败,反之必胜

延伸

若当前状态为 (a,b)(a,b)(a,b),b>=a,求状态转移方法
若当前转态已经是必败态,就不需要转移了
当前状态              转移方法                                   后一状态                         条件
(x,y){yybk(ak,bk)x=ak,y&gt;bkx,yxayx(ayx,ayx+yx)x=ak,x&lt;bkxxak(ak,bk)x&gt;ak,y=bkx,yxayx(ayx,ayx+yx)x&lt;ak,y=bk(x,y)\to\left\{\begin{matrix} y拿y-b_{k}个石子&amp; (a_{k},b_{k})&amp; x=a_{k},y&gt;b_{ k}\\ x,y拿x-a_{y-x}个石子&amp;(a_{y-x},a_{y-x}+y-x)&amp; x=a_{k},x&lt;b_{ k}\\ x拿x-a_{k}个石子&amp; (a_{k},b_{k})&amp; x&gt;a_{k},y=b_{k}\\ x,y拿x-a_{y-x}个石子&amp;(a_{y-x},a_{y-x}+y-x)&amp;x&lt;a_{k},y=b_{k}\\\end{matrix}\right.(x,y)→⎩⎪⎪⎨⎪⎪⎧​y拿y−bk​个石子x,y拿x−ay−x​个石子x拿x−ak​个石子x,y拿x−ay−x​个石子​(ak​,bk​)(ay−x​,ay−x​+y−x)(ak​,bk​)(ay−x​,ay−x​+y−x)​x=ak​,y>bk​x=ak​,x<bk​x>ak​,y=bk​x<ak​,y=bk​​


斐波那契博弈(Fibonacci Nim Game)

有一个堆n个石子(n>=2),第一个人可以取任意多个,但是不得一次性把所有石子取完,后一个取的石子数量不得超过第一个人的两倍,最后取完者胜/

结论

若n不是斐波那契数列的某一项,则必胜,反之必败

延伸

若n不是斐波那契数列的某一项,根据某一定理:当一个数不是Fibonacci数时,这个数必然等于若干个Fibonacci数之和,并且这些Fibonacci数在Fibonacci数列中都不相邻。
n=f(an)+...+f(a2)+f(a1)n=f(a_{n})+...+f(a_{2})+f(a_{1})n=f(an​)+...+f(a2​)+f(a1​)
先手拿最小的斐波那契数 f(a1)f(a_{1})f(a1​),但是因为f(a2)&gt;2f(a1)f(a_{2})&gt;2*f(a_{1})f(a2​)>2∗f(a1​)
则后手不能一次性将f(a_{2})拿光,因此先手必胜,策略如上


Sprague-Grundy定理(SG定理)

没找到相应的博客,就按照我自己的理解来吧。
类似动态规划,sg[i]表示当前状态,若在最优情况下,每个人都想要自己获胜,只要存在一个sg[j]状态,使得
sg[j]必败且 iji \to ji→j,这个代表着存在在一种方案,使得当前当前状态转移到一个必败状态。若存在这样方案,则sg[i]必胜,反之必败.

题目

POJ:
取石子游戏
Matches Game
Nim
A multiplication game
A Funny Game
A Chess Game
S-Nim
Georgia and Bob
A New Stone Game
Nim
John
Euclid’s Game
Christmas Game

HDU:
取石子游戏
取石子游戏
John
Stone Game II
Parallel Expectations
find the nearest station
Catching Fish
Digital Deletions
A Multiplication Game
A Chess Game
Euclid’s Game
S-Nim
Play a game
Stone Game
Northcott Game
Brave Game
Good Luck in CET-4 Everybody!
Fibonacci again and again
Rabbit and Grass
Being a Good Boy in Spring Festival
kiki’s game
Public Sale
取(m堆)石子游戏
取(2堆)石子游戏
悼念512汶川大地震遇难同胞——选拔志愿者

ZJU:
ZJU 3057 beans game

上一篇:NX二次开发-老版本UG自动切换到制图模块::PostMessage


下一篇:07_OpenCv图像掩膜操作