巴什博弈

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了巴什博弈相关的知识,希望对你有一定的参考价值。

对于这个博弈,有一种经典的例题:

1.只有一堆数量为n的石子;

2.只有两个人参与这个游戏;

3.两个人轮流取1--m个石子;

4.最先取完石子的人赢;

 

输出:

如果先手赢,输出1,否则输出0;

 

题解:

如果n=m+1,因为最多取m个。所以先手不论取多少个,后手都能一次拿完。

  所以,要想先手赢 n=(m+1)*r+s,(r为自然数,s为1--m).

那么先手拿走s个,后手拿走1--m个,,,那么先手肯定获胜。总之要给对手留下 m+1个的倍数,,先手就能获胜。

于是只要判断 n%(m+1)是否等于0。

如果等于0,那么无论先手怎么取,都会输。

 

1 int n,m;
2 if(n%(m+1))
3     printf("0\n");
4 else
5     printf("1\n"); 

 

以上是关于巴什博弈的主要内容,如果未能解决你的问题,请参考以下文章

nyoj 1077 小博弈 另类巴什博奕

nyoj 1077 小博弈 另类巴什博奕

博弈问题(巴什博弈 威佐夫博弈 尼姆博弈 斐波拉契博弈)结论

博弈论(巴什博奕,威佐夫博弈,尼姆博弈,斐波那契博弈)

博弈论(巴什博奕,威佐夫博弈,尼姆博弈,斐波那契博弈)

博弈论相关(巴什博弈)