公平组合游戏特点
1.由两名玩家组成。
2.游戏的状态为有限的。
3.两人轮流走,当有一玩家不可继续时游戏结束。
巴什博弈
1.问题:一堆n个物品,两人轮流取(1~m个),取光者胜。
2.同余定理:n=k*(m+1)+r,先手取走r个,无论后手取走多少个,只要先手取的数目和为(m+1),则先手必赢。
//分析:
(1)n<=m时,先手必赢。
(2) n=m+1时,无论先手拿多少个,剩余的一定大于1小于m,即后手必赢。
3.模板:
if (n%(m+1))
return 1;//先手赢
else
return 0;//后手赢
威佐夫博弈
1.问题:两堆n个物品,两人轮流取一堆中的至少一个或两堆中的相同多个物品,取光者胜。
2.黄金分割比:差值*黄金分割比==最小值,则后手赢,反之先手赢。
3.模板:
double r=(sqrt(5)+1)/2;//黄金分割比
int d=abs(a-b)*r;
if(d!=min(a,b))
return 1;//先手赢
else
return 0;//后手赢
尼姆博弈
1.问题:n堆物品,两人轮流取至少一个物品,取光者胜。
2.结论:讲n堆物品全部异或运算,若结果为0则必败,反之则必胜。
3.模板:
int m=0;
for(int i=1;i<=n;i++)
m=m^arr[i];
if(m==0)
return 0;//后手胜
else
return 1;//先手胜