经典博弈模型

0.NIM

问题描述1:甲乙两人面对若干堆石子,其中每一堆石子的数目可以任意确定。 游戏的规则如下:

(1)每一步应取走至少一枚石子;

(2)每一步只能从某一堆中取走部分或全部石子;

如果谁无法按规则取子,谁就是输家。

规律:所有堆石子的异或和为0则必败,否则必胜

问题描述2:甲乙双方事先约定一个数m,并且每次取石子的数目不能超过m个;其余规则同游戏1。

规律:都为空时必败,可以递推解决

1.巴什博弈

问题描述:只有一堆物品,共有n个,两人轮流从这对物品取,规定每次至少取一个,最多取m个,取最后一个胜。

规律

1、当n<=m时,先取者可一次去完,所以先取者胜;

2、当n=m+1时,无论先取者如何取,后取者都可一次性取完,所以后取者胜, 只要n=k(m+1),后取者只要采取正确的取法(取m+1与先取者之间的差),后取者一定能获胜。 走到这里规律已经很明显了,先取者要想获胜就必须让后取者面对 k(m+1)个。

胜利者一定要让失败者面对看k(m+1)个物品。要判断谁胜利,只需看 n%(m+1)),若余数为0,先取者必败,否则后取者必败

2.威佐夫博弈

问题描述:首先有两堆石子,博弈双方每次可以取一堆石子中的任意个,不能不取,或者取两堆石子中的相同个。先取完者赢。

规律

1.第一个(0,0),先手输,当游戏某一方面对(0,0)时,他没有办法取了,那么肯定是先手在上一局取完了,那么输。

2.第二个(1,2),先手输,先手只有四种取法,

(1)取 1 中的一个,那么后手取第二堆中两个。

(2)取 2 中一个,那么后手在两堆中各取一个。

(3)在 2 中取两个,那么后手在第一堆中取一个。

(4)两堆中各取一个,那么后手在第二堆中取一个。

可以看出,不论先手怎么取,后说总是能赢。所以先手必输!

3.第三个 (3,5),先手必输。 首先先手必定不能把任意一堆取完,如果取完了很明显后手取完另一堆先手必输。

(1)假如看取一堆的情况。 假设先手先在第一堆中取。 取 1 个,后手第二堆中取4个,变成(1,2)了,上面分析了是先手的必输局。 取 2 个,后手第二堆中取3个,也变成(1,2)局面了。

(2)假设先手在第二堆中取,取 1 个,那么后手在两堆中各取 2 个,也变成(1,2)局面了。 取2个 ,那么后手可以两堆中都去三个,变成(0,0)局面,上面分析其必输。 取3个,后手两堆各取1个,变成(1,2)局面了。 取4个,后手在第一堆中取一个,变成(1,2)局面了。

(3)先手取两堆的情况 取1个,那么后手在第二堆中取 3 个,也变成 (2,1)局面了。 取2个,那么后手可以在第二堆中取2个, 变成 (1,2)局面。

4.第四个(4,7) 第五个(6,10) 第六个(8,13) 第七个(9,15) 第八个(11,18)

会发现他们的差值是递增的,为 0 , 1 , 2, 3, 4 , 5 , 6, 7.....n

而用数学方法分析发现局面中第一个值为前面局面中没有出现过的第一个值,比如第三个局面,前面出现了 0 1 2,那么第三个局面的第一个值为 3 比如第五个局面前面出现了 0 1 2 3 4 5 ,那么第五个局面第一个值为6。 再找规律的话我们会发现,第一个值 = 差值 * 1.618 而1.618 = (sqrt(5)+ 1) / 2 。

3.斐波那契博弈

问题描述:有一堆个数为n的石子,游戏双方轮流取石子,满足:

1)先手不能在第一次把所有的石子取完;

2)之后每次可以取的石子数介于1到对手刚取的石子数的2倍之间(包含1和对手刚取的石子数的2倍)。

约定取走最后一个石子的人为赢家,求必败态。

规律:先手胜当且仅当n不是Fibonacci数。

证明:1、当i=2时,先手只能取1颗,显然必败,结论成立。

2、假设当i<=k时,结论成立。 则当i=k+1时,f[i] = f[k]+f[k-1]。 则我们可以把这一堆石子看成两堆,简称k堆和k-1堆。 (一定可以看成两堆,因为假如先手第一次取的石子数大于或等于f[k-1],则后手可以直接取完f[k],因为f[k] < 2*f[k-1])

对于k-1堆,由假设可知,不论先手怎样取,后手总能取到最后一颗。下面我们分析一下后手最后取的石子数x的情况。

如果先手第一次取的石子数y>=f[k-1]/3,则这小堆所剩的石子数小于2y,即后手可以直接取完,此时x=f[k-1]-y,则x<=2/3*f[k-1]。

我们来比较一下2/3*f[k-1]与1/2*f[k]的大小。即4*f[k-1]与3*f[k]的大小,由数学归纳法不难得出,后者大。

所以我们得到,x<1/2*f[k]。 即后手取完k-1堆后,先手不能一下取完k堆,所以游戏规则没有改变,则由假设可知,对于k堆,后手仍能取到最后一颗,所以后手必胜。 即i=k+1时,结论依然成立。

4.NimK 游戏

问题描述:每人一次可以从最多K堆石子中取出任意多个,其他规则同Nim Game.

规律:在二进制下各位上各堆石子的数字之和均为(K+1)的倍数的话则为必败态,否则为必胜态. NIMK游戏和NIM游戏的区别就在于模的不是2,如果是取k堆,就模k+1,所以取1堆的普通NIM游戏是模2。

5.Anti-Nim Game

问题描述:似乎又叫做Misère Nim. 不能取的一方获胜,其他规则同Nim Game.

规律:一个状态为必胜态,当且仅当:   

1)所有堆的石子个数为1,且NIM_sum=0   

2)至少有一堆的石子个数大于1,且 NIM_sum≠0

6.树上删边游戏

问题描述:给出一个有n个结点的树,有一个点作为树的根节点,双方轮流从树中删去一条边边,之后不与根节点相连的部分将被移走,无法操作者输。

规律:结论是叶子结点的SG值为0,其他结点SG值为其每个儿子结点SG值加1后的异或和。

posted @ 2017-12-28 18:09  Echo宝贝儿  阅读(1328)  评论(0编辑  收藏  举报