巴什博奕:php
兩個頂尖聰明的人在玩遊戲,有\(n\)個石子,每人能夠隨便拿\(1-m\)個石子,不能拿的人爲敗者,問誰會勝利html
巴什博奕是博弈論問題中基礎的問題spa
它是最簡單的一種情形對應一種狀態的博弈code
咱們從最簡單的情景開始分析htm
當石子有\(1-m\)個時,毫無疑問,先手必勝blog
當石子有\(m+1\)個時,先手不管拿幾個,後手均可以拿乾淨,先手必敗遊戲
當石子有\(m+2-2m\)時,先手能夠拿走幾個,剩下\(m+1\)個,先手必勝get
咱們不難發現,面臨\(m+1\)個石子的人必定失敗。io
這樣的話兩我的的最優策略必定是經過拿走石子,使得對方拿石子時還有\(m+1\)個class
咱們考慮往通常狀況推廣
先手會首先拿走\(r\)個,接下來假設後手拿走\(x\)個,先手會拿走\(m+1-x\)個,這樣博弈下去後手最終必定失敗
假設先手拿\(x\)個,後手必定會拿\(m+1-x\)個,這樣下去先手必定失敗
#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; }