巴什博弈 Bash Game

2021-06-28 09:35:48 字數 729 閱讀 7731

問題模型:

只有一堆n個物品,兩個人輪流從這堆物品中取物品,規定每次至少取乙個,最多取m個。

解決思路:

若n=m+1時,由於先手最多只能取m個,所以無論先手怎麼取,剩下的都可以讓後手取完,即後手必勝。

假設n=(m+1)*r+s。

(1)當s不等於0,先手要拿走s個物品,此時後手處於在剩下(m+1)*r個物品的狀態進行取物品;假設

後手取k(1<=k<=m)個物品,則先手應該採取的決策時取走m+1-k個,此時讓後手處於(m+1)*(r-1)個物品的

狀態,如此下去,先手就可以取走最後乙個石頭,而將(m+1)*0的狀態給予後手(即後手無法取物品,無法將

遊戲繼續,故先手贏)。

(2)當s等於0,後手採用(1)中先手採用的方法可以使得自己必勝,所以此時後手必勝。

總結:當n=(m+1)*r+s(s!=0),即n%(m+1)!=0時,先手必勝。

當n=(m+1)*r+s(s==0),即n%(m+1)==0時,後手必勝。

巴什博弈的裸題:hdu 1846

/*

hdu 1846 取石頭遊戲

題意:n個石子,每次至少取乙個,最多取m個,

最後取完石子的人為勝。

分析:n%(m+1)!=0 先手必勝

n%(m+1)==0 後手必勝

*/#includeint main()

return 0;

}

巴什博弈 Bash Game

巴什博奕 bash game 只有一堆n個物品,兩個人輪流從這堆物品中取物,規定每次至少取乙個,最多取m個,最後取光者得勝。顯然,如果n m 1,那麼由於一次最多只能取m個,所以,無論先取者拿走多少個,後取者都能夠一次拿走剩餘的物品,後者取勝。因此我們發現了如何取勝的法則 如果n m 1 r s,r...

數論 博弈 巴什博弈 BAshGame

巴什博弈 一堆物品有n個,兩個人輪流從這堆物品中取物,規定每次至少取乙個,最多取m個。最後取光者得勝。當石子有1 m個時,毫無疑問,先手必勝 當石子有m 1個時,先手無論拿幾個,後手都可以拿乾淨,先手必敗 當石子有m 2 2m時,先手可以拿走幾個,剩下m 1個,先手必勝 我們不難發現,面臨m 1個石...

巴什博奕(Bash Game)

巴什博弈 bash game,同餘理論 只有一堆n個物品,兩個人輪流從這堆物品中取物,規定每次至少取乙個,最多取m個。最後取光者得勝。顯然,如果n m 1,那麼由於一次最多只能取m個,所以,無論先取者拿走多少個,後取者都能夠一次拿走剩餘的物品,後者取勝。因此我們發現了如何取勝的法則 如果n m 1 ...