博弈论-巴什博奕
博弈论-巴什博奕
一概述:
两个顶尖聪明的人在玩游戏,有n个石子,每人可以随便拿1~m个石子,不能拿的人为败者,问谁会胜利。
巴什博奕是博弈论问题中基础的问题,它是最简单的一种情形对应一种状态的博弈。
二博弈分析:
首先先列举一下可能的情况:
- 有1~m个石子时,毫无疑问先手必胜,因为先手可以把所有的石子全部拿走。
- 有m+1个石子时,则后手必胜,因为先手无论拿多少个,后手都必定能把所有的石子全部拿走,所有后手必胜。
- 有k*(m+1)个石子时,共有k个m+1多个石子,对于每m+1个石子,先手取i个,那么后手一定能拿走全部的m+1-i个,最终k次后,仍是后手必胜。
- 当有k*(m+1)+x(0 < x < m+1 )时,先手先拿x个,这样局势就又变成了第三种情况了,对于每m+1个石子,无论后手取多少个,先手都能拿走m+1-i个石子,最终先手必胜
结论:
- 当石子为k(m+1)+x时
取走一定石子后,剩下的石子为k(m+1)时,先手必胜。 - 当石子为k*(m+1),即n能被m+1整除时,后手必胜。
三代码:
#include<iostream>
using namespace std;
int main(){
int n,m;
cin>>n>>m;
if(n%(m+1)==0)
cout<<"second"<<endl;
else
cout<<"first"<<endl;
return 0;
}

浙公网安备 33010602011771号