巴什博奕

一、遊戲規則:

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

二、詳解:

顯然,如果n=m+1,那麼由於一次最多隻能取m個,所以,無論先取者拿走多少個,後取者都能夠一次拿走剩餘的物品,後者取勝。因此我們發現瞭如何取勝的法則:如果n=(m+1)r+s,(r爲任意自然數,s≤m),那麼先取者要拿走s個物品,如果後取者拿走k(≤m)個,那麼先取者再拿走m+1-k個,結果剩下(m+1)(r-1)個,以後保持這樣的取法,那麼先取者肯定獲勝。總之,要保持給對手留下(m+1)的倍數,就能最後獲勝。

對於巴什博弈,那麼我們規定,如果最後取光者輸,那麼又會如何呢?

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

當 n % (m+1) != 0時,先手必勝。

注意:

  1. 變形玩法:兩個人輪流報數,每次至少1個數,最多報10個數字,誰先報到100取勝。
  2. 只有一堆n個石子,兩個人輪流從這堆石子中取石子,規定每次至少取一個,最多取m個,最後取完的人獲勝。

參考:https://www.cnblogs.com/kls123/p/6970414.html

#include<cstdio> 
int main() 
{ 
    int n,m; 
    scanf("%d%d",&n,&m); 
    if(n % (m+1) !=0) 
        printf("first win"); 
    else 
        printf("second win"); 
    return 0; 
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章