巴什博弈:只有一堆n个物品,两个人轮流从这堆物品中取物, 规定每次至少取一个,最多取m个。最后取光者得胜。这是巴什博弈最简单的定义,巴什博弈也是相对简单的一种博弈
#include <iostream>
using namespace std;
int main()
{
int n,m;
while(cin>>n>>m)
if(n%(m+1)==0)
cout<<"后手必胜"<<endl;
else
cout<<"先手必胜"<<endl;
return 0;
}
n%(m+1)==0后手一定赢,否则先手一定赢。如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。