巴什博弈(Bash game)是一个双人博弈:有一堆总数为 n n n的物品,2名玩家轮流从中拿取物品。每次至少拿 1 1 1件,至多拿 n n n件,不能不拿,最终将物品拿完者获胜。
必胜策略
在先取完者胜的巴什博弈中,若
n
n
n可被
m
+
1
m+1
m+1整除,则后手方必胜,否则先手方必胜。具体策略分析如下:
首先考虑两种简单情形,我们称某一
n
n
n的值是先手方\后手方的制胜位置,是指此
n
n
n值下先手方\后手方有必胜策略:
- 我们先考虑 n < m + 1 n<m+1 n<m+1的简单情形。此时先手方行动,由于物品数量小于 m + 1 m+1 m+1,故至多为 m m m件物品,先手方一次性拿完所有物品即可胜利。即 n = 1 , 2 , … , m n=1,2,…,m n=1,2,…,m是先手方的制胜位置。
- 我们再考虑
n
=
m
+
1
n=m+1
n=m+1的简单情形。此时先手方行动,他只能拿取
1
1
1至
m
m
m件物品,这意味着他无法一次将物品拿完,只能给后手方留下
1
1
1至
m
m
m件物品,而这一数量的物品恰好可被后手方一次性拿完。故后手方胜利。即
n
=
m
+
1
n=m+1
n=m+1是后手方的制胜位置。
下面我们考虑所有的 n n n,不妨设 n = k ( m + 1 ) + r n=k(m+1)+r n=k(m+1)+r,其中 0 ≤ r < m + 1 0\leq r<m+1 0≤r<m+1。由带余数除法知识可知,满足上面条件的整数 k k k与 r r r是唯一的。仍分为两种情形讨论: - r = 0 r=0 r=0,此时 n = k ( m + 1 ) n=k(m+1) n=k(m+1)。不妨设先手方取出了 x x x个物品,后手方只需要取出 m + 1 − x m+1-x m+1−x个物品,使得 n = ( k − 1 ) ( m + 1 ) n=(k-1)(m+1) n=(k−1)(m+1),故使得 n n n仍然整除 m + 1 m+1 m+1且后手方仍是后手方。如此操作下去,直到 n = m + 1 n=m+1 n=m+1的简单情形。这就说明了 n n n可被 m + 1 m+1 m+1整除时是后手方的制胜位置。
- k ≠ 0 k\neq 0 k=0,此时 0 < r < m + 1 0<r<m+1 0<r<m+1。故此时先手方可以取走 r r r件物品,使得 n n n可被 m + 1 m+1 m+1整除,且自身处于后手方位置,再由上面的讨论可知有必胜策略。这就说明了 n n n不可被 m + 1 m+1 m+1整除时是先手方的制胜位置。
策略实现
结合上述分析,玩家在巴什博弈中应当按照下面的策略拿取物品:
- 求 n n n整除 m + 1 m+1 m+1的余数 r r r,若 r ≠ 0 r\neq 0 r=0则拿取r件物品;
- 若则从 1 1 1到 m m m中任取拿取数量,此时已经处于必败位置,只能希望对方犯错。
本文转载自:百度百科-巴什博弈