關於巴什博弈的簡單介紹分析

2021-06-20 06:22:36 字數 851 閱讀 5873

首先,先拿乙個例題介紹一下巴什博弈。

像這樣2人採用最優策略取石子的問題就是典型的巴什博弈的思想

假設一開始有n個石子那麼n一定可以寫成n=(m+1)*r+s的形式,既然這樣的話,假如a先取,那麼一開始a取走s個石子(s0的時候,為a的必勝態

#include#includeint main()

return 0;

}

下面再看這個題

這個題的話,和上乙個大同小異

同的分析,如果一開始的話,a加價s,那麼b加價k,我們只需要不斷加(m+1-k)的話,我們所得的加個一直會是

(m+1)*r+s,當這個值為n的時候,我們就獲勝了,所以說當s>0的時候是我們的必勝態,當然,這個題還有一種特殊的情況需要我們討論,就是當m>n的時候

#includeint main()

{ int m,n,s,i;

while(scanf("%d%d",&n,&m)!=eof)

{if(n<=m)

{for(i=n;i<=m;i++)

{printf("%d",i);

if(i

關於巴什博弈的題網上還有很多,也有很多變形,感興趣的可以多看一看,很有意思的~

簡單博弈之巴什博弈

例題 guns和roses是兩個好朋友,這一天他們比賽吃葡萄。假定他們有ans顆葡萄。在比賽之前他們會首先確定每次吃葡萄的數量的最大值為s,和ans的具體值。兩個人輪流吃葡萄,每次最多吃s顆,不能不吃。即假定每次吃m顆葡萄,則 1 m s 遊戲規定在誰吃完葡萄後,他們兩個人所吃的葡萄總和等於ans,...

HDU 2147 簡單巴什博弈

題目意思大概是說,有乙個n m的棋盤,玩家從右上角的格仔開始移動,只能向左 向下或者向左下移動,當然不能超出棋盤的範圍,直到有一方不能動為止,求是否先手必勝。這道題有了思路就很簡單,從左下角的格仔依次遞推p態和n態的範圍,就會發現如果行和列只要有乙個為偶數即為先手必勝,如下 pragma comme...

博弈論入門 最簡單的博弈 巴什博弈

因此我們發現了如何取勝的法則 如果n m 1 r s,r為任意自然數,s m 那麼先取者要拿走s個物品,如果後取者拿走k m 個,那麼先取者再拿走m 1 k個,結果剩下 m 1 r 1 個,以後保持這樣的取法,那麼先取者肯定獲勝。總之,要保持給對手留下 m 1 的倍數,就能最後獲勝。二 所有一步能走...