博弈論學習筆記

前言

其實有至關大一部分的博弈論都是能夠抽象成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遊戲了

相關文章
相關標籤/搜索