簡單涉獵各種博弈

2021-07-09 02:28:37 字數 751 閱讀 6374

一.  巴什博奕(bash game):

a和b一塊報數,每人每次報最少1個,最多報4個,看誰先報到30。這應該是最古老的關於巴什博奕的遊戲了吧。

其實如果知道原理,這遊戲一點運氣成分都沒有,只和先手後手有關,比如第一次報數,a報k個數,那麼b報5-k個數,那麼b報數之後問題就變為,a和b一塊報數,看誰先報到25了,進而變為20,15,10,5,當到5的時候,不管a怎麼報數,最後乙個數肯定是b報的,可以看出,作為後手的b在個遊戲中是不會輸的。

那麼如果我們要報n個數,每次最少報乙個,最多報m個,我們可以找到這麼乙個整數k和r,使n=k*(m+1)+r,代入上面的例子我們就可以知道,如果r=0,那麼先手必敗;否則,先手必勝。

巴什博奕:只有一堆n個物品,兩個人輪流從中取物,規定每次最少取乙個,最多取m個,最後取光者為勝。

**如下:

#include 

using namespace std;

int main()

if(temp==0)  cout<<"後手必勝"<

#include 

#include 

using namespace std;  

const int n = 55;    

int f[n];   

void init()     

}  if(flag) puts("second win");  

else     puts("first win");  

}  return 0;   } 

各種常見的博弈論 簡單例題

斐波那契博弈 有一堆個數為n n 2 的石子,遊戲雙方輪流取石子,規則如下 1 先手不能在第一次把所有的石子取完,至少取1顆 2 之後每次可以取的石子數至少為1,至多為對手剛取的石子數的2倍。約定取走最後乙個石子的人為贏家,求必敗態。結論 當n為fibonacci數的時為必敗態。即將斐波那契數列打表...

hdu5754各種博弈

官方題解 我們依次分析每一種棋子。王。首先注意乙個3 3的棋盤,開始在 1,1 問走到 3,3 誰有必勝策略。窮舉所有情況,容易發現這是後手贏。對於nn和mm更大的情況,我們把橫座標每隔3 縱座標每隔3的點都畫出來,這些點都是符合後手勝的。因為無論先手怎麼移動,後手都能重新移動到這些格仔,直到到了終...

各種博弈 HDU5754

題意 乙個西洋棋棋盤,有四種棋子,從 n,m 走到 1,1 走到 1,1 的人贏,先手贏輸出b,後手贏輸出g,平局輸出d。題解 先把從 n,m 走到 1,1 看做是從 1,1 走到 n,m 四種棋子的規則如下 1 王 king 橫 豎 斜都可以走,每次限走一格 2 車 rook 橫 豎均可走,不能斜...