威佐夫博弈

威佐夫博弈

一共有2堆石子,每堆石子个数也是任意的,双方轮流从中取出石子

1.每次有2种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。

2.最后把石子全部取完者为胜者

Answer1表示赢,0表示输,a,b2堆石子的数量


	if (a > b)
            swap(a, b);
        int c = b - a;
        double m = (1 + sqrt(5)) / 2;
        int answer = 1;
        if (a == floor(c * m))//floor函数为返回一个小于等于参数的最大整数
            answer = 0;




你可能感兴趣的:(威佐夫博弈)