巴什博弈其實就是取石子遊戲:
只有一堆n個物品,兩個人輪流從這堆物品中取物, 規定每次至少取乙個,最多取m個。最後取光者得勝。
分析:
這是乙個典型的博弈論問題。其中有兩個局中人,分別為a和b,並假設a先取,b後取。每次取的時候他們都有自己的決策,即每次取的個數為[1
,m] 。
我們舉個特例,如果n=
m+1,那麼不管a取 [1
,m] 中任一數量的石子,都不會取光所有石子,假設取了a1個石子,那麼剩下 n−
a1個石子,而 n−
a1∈[
1,m)
的,為 [1
,m] 的子集,所以b肯定能在a取後取完所有的石子,則b贏。
那麼通過特例來分析一般情況:如果n=
(m+1
)∗r+
s,(r為任意自然數,s≤m)。
首先,a要取走s個石子,則剩下(m+1)*r個石子。
然後,b取走k(1≤k≤m)個,剩下(m+1)*r-k個石子。
接著,a再取走(m+1)-k個石子,結果剩下(m+1)(r-1)個。
以此類推,如果一直保持這樣的取法,那麼a肯定贏。
總之,誰能一直保持給對手留下(m+1)的倍數的石子,誰就能最後贏。
所以可以斷定:如果n是(m+1)的倍數,則先取者一定輸,否則先取者最後一定贏。
#include
using
namespace
std;
int n,m;
int main()
return
0;}
博弈論中的巴什博奕
巴什博奕 bash game 只有一堆n個物品,兩個人輪流從這堆物品中取物,規 定每次至少取乙個,最多取m個。最後取光者得勝。顯然,如果n m 1,那麼由於一次最多只能取m個,所以,無論先取者拿走多少個,後取者都能夠一次拿走剩餘的物品,後者取勝。因此我們發現了如何取勝的法則 如果n m 1 r s,...
博弈論入門之巴什博奕
巴什博奕 兩個頂尖聰明的人在玩遊戲,有n個石子,每人可以隨便拿1 m個石子,不能拿的人為敗者,問誰會勝利 巴什博奕是博弈論問題中基礎的問題 它是最簡單的一種情形對應一種狀態的博弈 我們從最簡單的情景開始分析 當石子有1 m個時,毫無疑問,先手必勝 當石子有m 1個時,先手無論拿幾個,後手都可以拿乾淨...
博弈(巴什博奕 尼姆博弈)
1.巴什博奕 一堆 n個物品 兩人輪流從中取物品每人至少拿乙個最多拿m個將這堆物品最後取完的是winner先手勝利條件 n m 1 0 誰面對 m 1 k的情況誰就輸了 k為正整數 include int main return 0 2.尼姆博弈 三金和敵人決戰了!對手是一名和三金同樣強大帥氣的玩家...