<--------個人**傳送門------->
由於博弈論算是一種比較玄學的東西,證明和思想也不是很好理解,這裡只歸納幾種常見博弈論的結論和相關題目。
巴什博奕(bash game)
只有一堆n個物品,兩個人輪流從中取物,規定每次最少取乙個,最多取m個,最後取光者為勝。
必定可以寫成該式子 n=k*(m+1)+r;
結論:若r=0,則先手必敗,
否則先手必勝。
#include using namespace std;
int main()
if(flag)
cout<<"second win"<
威佐夫博弈(wythoff game)
有兩堆各若干的物品,兩人輪流從其中一堆取至少一件物品,至多不限,或從兩堆中同時取相同件物品,規定最後取完者勝利。
結論:若兩堆物品的初始值為(x,y),且x,則另z=y-x;
記w=(int)[((sqrt(5)+1)/2)*z ];(中間為熟知的**分割比)
若w=x,則先手必敗,否則先手必勝。
例題:poj1067
ac**:
#include#includeusing namespace std;
int main()
if(ans==0)
cout<<0<nim staircase博奕:
這個問題是尼姆博弈的拓展:遊戲開始時有許多硬幣任意分布在樓梯上,共n階樓梯從地面由下向上編號為0到n。遊戲者在每次操作時
可以將樓梯j(1<=j<=n)上的任意多但至少乙個硬幣移動到樓梯j-1上。遊戲者輪流操作,將最後一枚硬幣移至地上(0號)的人獲勝。
結論:將奇數樓層的狀態異或,和為0則先手必敗,否則先手必勝。
博弈論總結
nim遊戲,不能操作者勝。先手必勝當且僅當 1.所有石子都為1,且有偶數堆。2.至少一堆數量大於1,sg函式異或不為0 那麼對於所有的anti sg遊戲,先手必勝當且僅當 1.sg函式異或為0且不存在sg 1 2.sg函式異或不為0且至少有乙個sg 1 每一輪裡要操作所有能操作的子遊戲。nim遊戲每...
博弈論總結
本文在混沌 的部落格 題解 p2252 取石子遊戲 的基礎上創作 a和b一塊報數,每人每次報最少1個,最多報4個,看誰先報到30。這應該是最古老的關於巴什博奕的遊戲了吧。其實如果知道原理,這遊戲一點運氣成分都沒有,只和先手後手有關,比如第一次報數,a報k個數,那麼b報5 k個數,那麼b報數之後問題就...
ACM博弈論總結
常用的4個博弈論演算法 巴什博奕,威佐夫博奕,尼姆博奕,斐波那契博弈 只有一堆n個物品,兩個人輪流從這堆物品中取物,規定每次至少取乙個,最多取m個。最後取光者得勝。顯然,如果n m 1,那麼由於一次最多只能取m個,所以,無論先取者拿走多少個,後取者都能夠一次拿走剩餘的物品,後者取勝。因此我們發現了如...