博弈-威佐夫博弈

有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光着得胜。

奇异局势的性质:

1.任何自然数都包含在一个且仅有一个奇异局势中;

2.任何操作都可以将奇异局势变为非奇异局势;

3.采用适当的方法,可以将非奇异局势变为奇异局势。

所以面对非奇异局势,先手必胜,否则先手必败。

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
typedef long long ll;
int  main()
{
    int a,b,t;
    cin>>a>>b;
    double x=(1+sqrt(5.0))/2.0;
    if(a>b)
        swap(a,b);
        t=(int)((b-a)*x);
    if(t==a)
        cout<<"先手必败"<

你可能感兴趣的:(数学-博弈)