常見博弈論總結

2021-09-13 10:53:41 字數 988 閱讀 8654

<--------個人**傳送門------->

由於博弈論算是一種比較玄學的東西,證明和思想也不是很好理解,這裡只歸納幾種常見博弈論的結論和相關題目。

巴什博奕(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個,所以,無論先取者拿走多少個,後取者都能夠一次拿走剩餘的物品,後者取勝。因此我們發現了如...