巴比博弈
參考:博弈論及算法實作
隻有一堆個物品,兩個人從輪流中取出
n
(1~m)
個,最後取光者勝。
考慮到 若
n=m+1
那麼 第一個人不論如何取都不能取勝。
進一步我們發現 若
,先取者拿走
n=k(m+1)+r
個,那麼後者再拿
r
(1~m)
個
; 先取者再拿走
n=(k-1)*(m+1)+r
個 最後總能造成 剩下
r
n=m+1
的局面。
是以,此時先手有必赢政策。
相對應的,若
n=k*(m+1)
那麼先取者必輸。
是以我們可以寫出對應的程式(預設
都大于0)
n m
代碼:
bool Bash_Game(int n,int m)//是否先手有必赢政策
{
if (n%(m+1)!=0) return true;
return false;
}