[关闭]
@a335031 2014-08-29T00:51:28.000000Z 字数 903 阅读 2212

巴什博奕

组合算法 ACM


简单巴什博弈

巴什博奕(Bash Game):有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。

显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果

n=(m+1)r+srN,1sm

那么先取者要拿走s个物品,如果后取者拿走k1m个,那么先取者再拿走m+1k个,结果剩下(m+1)(r1)个,以后保持这样的取法,那么先取者肯定获胜。总之,要保持给对手留下(m+1)的倍数,就能最后获胜。

对于巴什博奕,如果我们规定最后取光者输,那么又会如何呢?
(n1)mod(m+1)0则先手胜利。

推广的巴什博奕

同样是n个物品,两个人轮流从这堆物品中取物,但规定每次至少取p个,最多取q个。最后取光者得胜。(其中qp
1. 当n=0时,先取者输。
2. 当0(n1)mod(p+q)<q时,则先取者赢。
3. 当q(n1)mod(p+q)<p+q,时,则先取者输。

为了避免公式中出现对负数取模的另一个方法:
1. 当0(n+p+q1)mod(p+q)<q时,则先取者赢。
2. 当q(n+p+q1)mod(p+q)<p+q时,则先取者输。

如果我们规定最后取光者输,那么又会如何呢?
1. 规定当n=0时,先取者赢。
2. 当0(n1)mod(p+q)<p时,则先取者输。
3. 当p(n1)mod(p+q)<p+q时,则先取者赢。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注