只汇总出OI中常见的博弈定理或结论,不给出证明,需要证明可自行百度。
一:(Nim系列)
① Nim博弈
题设:有n堆石子,第i堆有ai个石子,两人进行游戏,每轮可以选择一堆取出若干石子(>1),不能取者败。
结论:令 S=a1 xor a2...xor an,若S=0则先手必败,否则先手必胜
② Nim扩展
题设:有n堆石子,第i堆有ai个石子,两人进行游戏,每轮可以选择一堆取出<=m个石子,不能取者败。
结论:让所有ai对m+1取模得到ai',令S'=a1' xor a2'...xor an',若S=0先手败,否则先手胜。
③Nim(k)问题
题设:有n堆石子,第i堆有ai个石子,两人进行游戏,每轮可以选择不超过k堆取出若干石子(>1),不能取者败。
结论:对于每一位,将ai在该位上的值(0或1)求和,对(k+1)取模,若每一位都为0,则先手必败,否则先手必胜。
④anti-Nim(Misere Nim):
题设:有n堆石子,第i堆有ai个石子,两人进行游戏,每轮可以选择一堆取出若干石子(>1),不能取者胜。
结论:
设先手胜局为S局,先手败局为T局。
定义Si:
S0表示没有一堆石子个数>1的S局
S1表示只有一堆石子个数>1的S局
S2表示有两个或两个以上堆石子个数>1的S局
Ti同理。
显然,S局可以转移到T局或S局,T局只能转移到S局
※有结论:
S0局先手败
S1局先手胜
S2局先手胜
T0局先手胜
T2局先手败
(不存在T1局)
二:(其他)
巴什博弈:Nim拓展的弱化版
题设:只有一堆n个石子,两人进行游戏,每轮可以取<=m颗石子,不能取者胜
结论:根据Nim拓展的结论,当n%m==0时先手败,否则先手胜。
威佐夫博弈:
题设:有两堆石子,石子数分别为n和m,两人进行游戏,每轮可以在某一堆取若干石子,或在两堆中取同样数量的石子,不能取者败。
结论:设n>m,令k=n-m,S=k*( 1+sqrt(5) )/2(向下取整)
若S==n则先手败,否则先手胜