威佐夫博弈模板

威佐夫博弈(Wythoff Game):有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。

//威佐夫博奕:有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。
//输入:两堆大小
//返回:0表示必败,1表示必胜
bool Wythoff(int n,int m)
{
    if(n<m) swap(n,m);
    int k=n-m;
    n=(int)(k*(1+sqrt(5))/2.0);
    if(n==m)
        return 0;
    else
        return 1;
}

 

posted @ 2016-08-04 00:59  chenhuan001  阅读(770)  评论(0编辑  收藏  举报