2025/11/17 分享

分享一些游戏

对称博弈

\(n\) 个石子围成一个圈,两个人轮流取走石子,每次可以取走一个石子或者相邻的两个石子,最后没有石子取的人输。

显然如果 \(n \leq 2\) ,先手总会赢。

否则显然先手只能把一个圈变成一条链。否则后手可以一次拿完,或者把一条链变成两条链。

后手总有办法分成两条一模一样的链。接下来无论先手如何操作,后手总能在对称位置模仿操作,那么后手赢。

那么当且仅当 \(n \geq 2\) 后手必胜。

NP 图

命题 1 :无法进行任何移动的局面是 \(P-postion\)
命题 2 :可以移动到 \(P-postin\) 的局面是 \(N-postion\)
命题 3 :所以移动都导致 \(N-postion\) 的局面是 \(P-postion\)

巴什博弈
\(n\) 根火柴,两个人轮流取走火柴,每次可以取走 \(1 \sim m\) 根,最后没有火柴取的人输。

考虑动态规划:
\(dp[0] = P\)\(dp[0 + 1 \sim m] = N\)
\(dp[m + 1] = P\)\(dp[m + 1 + 1 \sim m] = N\)
\(dp[2m + 2] = P\)\(dp[2m + 2 + 1 \sim m] = N\) ……

容易不完全归纳当且仅当 \(n \equiv 0 (\bmod m + 1)\) 时是 \(P\) 态。设为命题 1 。

证明:
命题 2 :当 \(n \equiv 0 (\bmod m + 1)\) ,根据鸽笼原理取 \(< m + 1\) 根火柴总会让新的 \(n^{'}\) 满足 \(n^{'} \not \equiv 0 (\bmod m + 1)\)
命题 3 :当 \(n \not \equiv 0 (\bmod m + 1)\) ,根据鸽笼原理总能取 \(< m + 1\) 根火柴使让新的 \(n^{'}\) 满足 \(n^{'} \equiv 0 (\bmod m + 1)\)

\(\square\)

那么我们声称这个归纳是完备的。

NIM 博弈
\(n\) 堆石子,每堆有 \(a_1, a_2, \cdots, a_n\) 个,两个人轮流取石子,每次可以选择其中一堆拿走任意多个,最后没有石子拿的人输。

假设 \(n = 1\) ,显然先手必胜。
假设 \(n = 2\) ,显然在先手走过后,后手总能通过模仿,使得局面对称,那么后手必胜。
\(n \geq 3\) 则没那么容易推导,这里引入 \(NIM\) 和作为工具。

对于一个 \(NIM\) 游戏的局面 \(a_1, a_2, \cdots, a_n\) ,他是 \(P-postin\) 当且仅当 \(a_1 \oplus a_2 \oplus \cdots a_n = 0\) 。设为命题 1 。
证明:
命题 2 :若 \(a_1 \oplus a_2 \oplus \cdots a_n = k\) ,设 \(k\) 的最高位为 \(m\) ,总存在 \(i \in [1, n]\) 满足 \(a_i\)\(m\) 位为 \(1\) ,则 \(a_i \oplus k \leq a_i\) 。由 \(a_1 \oplus a_2 \oplus \cdots a_n \oplus k = 0\) ,这需要在 \(i\) 这堆拿走 \(a_i - a_i \oplus k\) 变成 \(a_i - (a_i - a_i \oplus k) = a_i \oplus k\) 即可。
命题 3 :若存在 \(a_i\) 拿走一些石子后变成 \(a_i^{'} < a_i\) ,则 \(P-opstion\)\(NIM\) 和为 \(0 \oplus a_i \oplus a_i^{'} \neq 0\)

\(\square\)

posted @ 2025-11-17 16:55  03Goose  阅读(1)  评论(0)    收藏  举报