博弈论专题

基本概念

去复习

公平组合游戏

nim 游戏

有向图游戏和 SG 函数

SG 函数值相同的游戏等价 —— lingfunny

各种模型

nim 游戏

模型\(n\) 堆石子,每次可以取一堆中的若干个石子(至少一个),取完胜

结论:异或和 \(\ne 0\) \(\Leftrightarrow\) 必胜

证明

很好证,一般来说博弈论的证明只需要证三件事

  1. 游戏结束是必败态,异或和为 \(0\) (这个显然)

  2. 必胜态可以到必败态,也就是异或和非零可以到异或和为零

    (假设目前异或和为 \(k\),一定可以找到一个 \(a_i\) 使 \(a_i \oplus k <a_i\),因为如果 \(k\) 的最高位上 \(a_i\) 也是 \(1\),异或之后一定会变小,而由于 \(k\) 是异或和,所以一定有奇数个 \(a_i\) 满足 \(k\) 的最高位上 \(a_i\) 也是 \(1\)

  3. 必败态只能到必胜态,也就是异或和为零只能到异或和非零

    (假设取的石子原本是 \(a_i\),由异或的性质得取后也是 \(a_i\),显然不合法)

我觉得证明很好证,关键是这个结论怎么想得到啊喂)

【模板】nim 游戏

阶梯-nim 游戏

模型\(n\) 堆石子,每次可以取一堆中的若干个石子(至少一个),放到前一堆中,最后一次操作的人胜

结论:奇数位置的异或和 \(\ne0 \Leftrightarrow\) 必胜

证明也是一样套路

这个等价于保证单调不下降的 nim

P5363 [SDOI2019]移动金币

k-nim 游戏

模型\(n\) 堆石子,每次可以取最多 \(k\) 堆 (不能不取),最后一次操作的人胜

结论:二进制表示下 \(a_i\) 每一位的和 \(\equiv 0 \left(\bmod (k+1)\right)\)

P2490 [SDOI2011]黑白棋

anti-nim 游戏

模型:跟 nim 一样,最后一次操作的人败

结论:当全部 \(a_i=1\),有偶数堆 \(\Leftrightarrow\) 必胜态

​ 当至少一个 \(a_i>1\) ,异或和 $\ne 0 $ \(\Leftrightarrow\)必胜态

第一点显然,对于第二点,若异或和非 \(0\),一定可以变成 \(0\) ,最终只有一堆的石子数 \(>1\) ,此时,轮到先手,先手一定可以让局面变成只有奇数个 1 ,先手胜

反常游戏

推广上述到任意一个反常游戏(最后一次操作的人败)

结论\(\forall\ SG(a_i)=1\)\(SG(A)=0\) \(\Leftrightarrow\) 必胜态

\(\exists\ SG(a_i)>1\) ,$SG(A)\ne 0 $ \(\Leftrightarrow\) 必胜态

(其中 \(a_i\) 是子游戏,有 \(SG(A)=\bigoplus SG(a_i)\)

拆分-Nim游戏

集合-Nim游戏

Bash 游戏

模型\(n\) 个石子,每次取 \(1\sim m\)

结论\((m+1)\nmid n\Leftrightarrow\) 必胜

Fibonacci 游戏

Wythoff 游戏

Every−SG 游戏

posted @ 2023-02-08 23:41  copper_carbonate  阅读(22)  评论(0编辑  收藏  举报