博弈论学习笔记

前言

其实有至关大一部分的博弈论都是能够抽象成Nim及其扩展问题的,剩下的小部分结合题目具体分析。函数

本文主要讨论Nim有关的题目3d

nim的原型题结论:若$a_1 \ xor \ a_2 \  xor... a_n=0$则先手必败,不然必胜blog

证实:游戏

终止局面显然知足等式原型

若是一个局面$a_1 \ xor a_2 \ xor... a_n!=0$,那么不管他改变其中一个$a_i$等于剩下数字的异或和就能知足等式it

若是一个局面$a_1 \ xor a_2 \ xor... a_n=0$,那么不管他改变$a_i$中的哪个都会打破等式扩展

方法1:将题目中的抽象为nim中的石头堆的

有些博弈论题,结合题目中的信息推导一些结论后,能够将原问题抽象为Nim问题二进制

好比【BZOJ2281】【Sdoi2011】黑白棋 将棋子间的间隔抽象为石头堆方法

有些题目须要借助SG函数来抽象im

即,将每个状态用SG函数值表示出来。

若SG(x)=y,含义就是x能够转移到0~y-1的全部状态(像不像Nim游戏?),若SG(x)=0就说明没法转移,也就是输了。

这样能够将SG函数值自己看做石头堆

而后原问题就转化为了初始状态的SG异或和是否为0

递推解决便可

方法2:Nim游戏的一些变形

nim-k游戏

能够同时取最多k堆石头

结论:若知足:将$a_i$写成二进制,若对于每个二进制位,全部的$a_i$那一位的1的数量%k=0,则先手必败,不然必胜

证实类比传统Nim游戏

mulit-nim游戏

每次选择一堆石头,将其分裂为几堆更小的。

结论:每堆石头的SG函数的后继集合等于每种分法产生的堆的异或和

即$SG(x)=mex(SG(a_1 xor ..a_{k_1}),SG(b_1 xor .. b_{k_2},...)$

而后递推SG函数求解便可

例题:【bzoj3576】[Hnoi2014]江南乐

anti-nim游戏

最后一个取石头的人输

一个状态为必胜态,当且仅当:(NIM_sum为全部石头数的异或和)

  1)全部堆的石子个数为1,且NIM_sum=0

  2)至少有一堆的石子个数大于1,且 NIM_sum≠0

 

阶梯nim游戏

每次将所取第i堆的石头转移到第i-1堆,到0中止

若全部奇数位的数异或起来,若不为0则必胜

证实:移入偶数堆的石头能够看作是被清除了

若是有人拿出来就再将其丢去下一个偶数堆,对局面不影响

之因此是偶数是由于0是偶数,移入0的石头没法再移出,再也不有影响。

而后就是普通的Nim游戏了

相关文章
相关标签/搜索