博弈论问题
一般考察公平组合游戏
什么是公平组合游戏
特点有:
- 两玩家轮流行动,方式一致;
- 两玩家对游戏完全了解,完全理性
- 一定会在有限步数内结束,一方胜利,一方失败
- 以一方无法行动为结束
所以,只要知道某个局面,就能推断出胜负情况。
Bash 游戏
问题:一共 \(n\) 个石子,轮流拿,每次拿 \(1 \sim m\) 个,最后取的胜利。
结论:如果 \(n \equiv 0 \pmod{m+1}\) ,则后手必胜,否则先手胜。
分析:假如此时是先手胜的情况,就拿取一定个数使得 \(n \equiv 0 \pmod{m+1}\) ,将自己转化为后手且必胜的局面。作为后手,不论先手去 \(1 \sim m\) 中的多少个,只要后手取完后仍然满足 \(n \equiv 0 \pmod{m+1}\) 即可胜利。
例:洛谷P4018 Roy&October之取石子
共有 \(n\) 个石子,两人每次都只能取 \(p^k\) 个( \(p\) 为质数,\(k\) 为自然数,且 \(p^k\) 小于等于当前剩余石子数),谁取走最后一个石子,谁就赢了。
其中 \(1 \sim 5\) 都可以取。如果 \(x \equiv 0 \pmod{6}\) ,则后手必胜。 \(x=6k=2 \cdot 3 \cdot k\) ,这一定是无法被 \(p^k\) 表示的。所以当 \(x \equiv 0 \pmod{6}\) 时,先手取后一定不是 \(6\) 的倍数,后手取 \(1 \sim 5\) 中的一个使得剩余仍然为 \(6\) 的倍数。
Nim 游戏
问题:一共有 \(n\) 堆石子,第 \(i\) 堆有 \(a_i\) 个,每次每人可以某一堆拿取任意多个石子,最后一次拿取的人获胜。
结论:如果 \(\oplus_{i=1}^{n}a_i =0\) ,则后手必胜;否则先手必胜。
分析:如果取完,异或和为 \(0\) ,此时失败;取完前,如果异或和为 \(0\) ,则拿取后异或和必然不为 \(0\) 。(每一位有偶数个 \(1\) 时,异或和为 \(0\) 。任意拿取,一定会改变某一位奇偶性)。如果异或和不为 \(0\) ,拿取后可以为 \(0\) 。(假设异或和最高位为第 \(k\) 位,找到有第 \(k\) 位的数字,可以通过取一定的数字使得每一位为偶数个 \(1\) )。
如果开局异或和为 \(0\) ,后手总是能控制对方遇到异或和为 \(0\) 的情况,必胜。
例:P4279 [SHOI2008] 小约翰的游戏
桌子上有 \(n\) 堆石子,轮流取石子,每个人取的时候,可以随意选择一堆石子,在这堆石子中取走任意多的石子,但不能一粒石子也不取,我们规定取到最后一粒石子的人算输。
跟 Nim 游戏很像,但胜利条件相反,是反 Nim游戏。如果剩余的只有 \(1\) ,那么就是纯粹的轮流拿取,判断奇偶。如果其中只有一个不是 \(1\) ,那么先手可以选择拿完或不拿完控制 \(1\) 的数量。所以只有一个不是 \(1\) 是先手必胜。此时异或和一定不是 \(0\) 。如果有多个不是 \(1\) ,且异或和不为 \(0\) ,那么先手总是面对异或和不为 \(0\) 的局面,后手总是异或和为 \(0\) 。此时先手必胜。否则后手必胜。

浙公网安备 33010602011771号