假期練習2021 1 18 巴什博奕

2021-10-16 09:31:15 字數 543 閱讀 8548

有 n 個石子,兩個人輪流取石子,規定每次至少取乙個,最多取 m 個。取走 最後乙個的人獲勝。 稱先取的人為先手,後取的人為後手。

請問當 n 與 m 滿足什麼條件時,先手有必勝策略。當 n 與 m 滿足什麼條件時, 後手有必勝策略。

你可以寫乙個程式進行問題求解,你也可以直接進行推理。

我們從最簡單的情景開始分析

當石子有1~m個時,毫無疑問,先手必勝

當石子有m+1個時,先手無論拿幾個,後手都可以拿乾淨,先手必敗

當石子有m+2~2m時,先手可以拿走幾個,剩下m+1個,先手必勝

我們不難發現,面臨m+1個石子的人一定失敗。

這樣的話兩個人的最優策略一定是通過拿走石子,使得對方拿石子時還有m+1個

我們考慮往一般情況推廣

先手會首先拿走rr個,接下來假設後手拿走xx個,先手會拿走m+1−x個,這樣博弈下去後手最終一定失敗

假設先手拿x個,後手一定會拿m+1−x個,這樣下去先手一定失敗

#includeint main()

參考:

巴什博奕(Bash Game)

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

巴什博奕詳解

只有一堆n 個石子,兩個人輪流從這堆石子中取物,規定每次至少取乙個,最多取 m 個。最後取光者得勝。兩人均採用最優方案。假設雙方分別為a,b 且指定a為先手。如果是 n m 的情況下 先手a一次即可取完,a必勝。故重點討論 n m 的情況 當 n m 1 時 因為a至多取 m 顆,最少取 1 顆 在...

NYOJ 巴什博奕 bash game

時間限制 3000 ms 記憶體限制 65535 kb 難度 2 描述 一天,tt在寢室閒著無聊,和同寢的人玩起了取石子遊戲,而由於條件有限,他 她們是用旺仔小饅頭當作石子。遊戲的規則是這樣的。設有一堆石子,數量為n 1 n 1000000 兩個人輪番取出其中的若干個,每次最多取m個 1 m 100...