取石子游戏(威佐夫博弈)

来源:互联网 发布:linux 死机日志分析 编辑:程序博客网 时间:2024/05/19 19:43

威佐夫博弈相对于巴什博弈和尼姆博弈最复杂了,我推了一下,推出了规律推不出公式

公式是这样的(抄自大牛):

a= k * (1 + sqrt(5))/2
b =a + k;

代码:

#include<iostream>#include<cstdio>#include<cstring>#include<cmath>using namespace std;int a,b;int main(){    //freopen("input.txt","r",stdin);    while(~scanf("%d%d",&a,&b)){        if(a<b){            a^=b;            b^=a;            a^=b;        }        int k=a-b;        a=(int)(k*(1+sqrt(5))/2.0);        if(a==b)            printf("0\n");        else            printf("1\n");    }    return 0;}

原创粉丝点击