巴什博奕型別取石子

2021-07-14 16:28:28 字數 403 閱讀 8708

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

如果n=m+1,那麼無論先手拿走多少個,後手都可以把石子全部拿完,n又可以用乙個公式表示:n=(m+1)*k+t,t<=m

若 t=0,則 n 剛好是 m+1 的整數倍,則無論先手每次拿多少個都會剩餘a*(m+1)+(m+1-x)  【x為拿走的個數,a為正整數】,因為m+1-x 必大於0小於m,則先手必輸。

若 t≠0,則先手先拿走 t 個,後手拿走 x (x<=m)個,先手再拿走m+1-x個 ,按這種方式依次去拿,最後後手拿完後剛好剩餘m+1-x,即後手必輸

#include

int main()

return 0;

}

LibreOJ 取石子遊戲 1(巴什博奕)

題目鏈結 演算法解析 我們從最簡單的情景開始分析 當石子有1 m個時,毫無疑問,先手必勝 當石子有m 1個時,先手無論拿幾個,後手都可以拿乾淨,先手必敗 我們考慮往一般情況推廣 設當前的石子數為n k m 1 r 先手會首先拿走r個,接下來假設後手拿走x個,先手會拿走m 1 x個,這樣博弈下去後手必...

NYOJ135 取石子(二) 尼姆博奕 巴什博奕

小王喜歡與同事玩一些小遊戲,今天他們選擇了玩取石子。遊戲規則如下 共有n堆石子,已知每堆中石子的數量,並且規定好每堆石子最多可以取的石子數 最少取1顆 兩個人輪流取子,每次只能選擇n堆石子中的一堆,取一定數量的石子 最少取乙個 並且取的石子數量不能多於該堆石子規定好的最多取子數,等哪個人無法取子時就...

巴什博奕(Bash Game)

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