闪狐 FlashFox
登录

对策问题

专题简介
对策问题(博弈):两个玩家轮流操作,分析是否存在必胜策略。
常见题型:取石子游戏、棋盘游戏、报数游戏。
核心思想:找出『必败态』(走到这个状态的玩家无论怎么走都会输)。
对称策略:模仿对手的操作,保证自己永远有得走。

常用技巧
【找必败态】从最终状态往前推,标出必败态(P-position)和必胜态(N-position)。
【对称策略】保证自己走完后局面对称,让对手面对对称局面。
【取石子游戏】每次取 1~k 个,剩下 m(k+1) 个时必败。
【控制余数】让对手每次面对的物品数是 (k+1) 的倍数。
【后手模仿】后手玩家模仿先手的走法,保证不败。

常见易错点
× 搞反必胜态和必败态:必败态是『谁面对这个状态谁输』。
× 忘记了『对称策略』适用于哪些游戏(通常适用于『无偏博弈』)。
× 取石子问题中,每次取 1~k 个,必败态是剩下 (k+1) 的倍数个。

练习摘录

取石子游戏(每次取1~k个),必败态是什么?

剩下 (k+1) 的倍数个时必败。 策略:每次取完让剩余数量是 (k+1) 的倍数,让对手面对必败态。

对称策略怎么用?

走完之后让局面对称,对手怎么走你就在对称位置怎么走。 适用于:两个玩家操作同一个棋盘/物品堆,且操作对称。

一堆 20 个石子,两人轮流取,每次取 1~3 个,取完者胜。先手必胜还是后手必胜?

提示:必败态:剩下 4 的倍数个时必败(因为对手取 1~3 个,你总能取完让剩余回到 4 的倍数)。 20 是 4 的倍数 → 先手面对必败态 → 后手必胜。 策略:后手每次取 (4 − 先手取的数量),保证每轮共取 4 个。

一堆 21 个石子,两人轮流取,每次取 1~3 个,取完者胜。先手必胜吗?

提示:21 ÷ 4 = 5 余 1。先手第一次取几个,能让剩余变成 4 的倍数? 先手取 1 个,剩余 20(4 的倍数),让后手面对必败态。 之后每次后手取 x 个,先手取 (4−x) 个。 → 先手必胜!

两人轮流报数,每次报 1~3 个数,从 1 开始报,报到 20 者胜。先手必胜策略?

提示:必败态:报到 4 的倍数时,轮到对方报。因为对方报 1~3 个数,你总能报到下一个 4 的倍数。 先手要抢到 4, 8, 12, 16, 20。 先手先报 1,2,3,4(抢到 4),之后每次抢到下一个 4 的倍数。 → 先手必胜!

奥特曼和哥斯拉玩游戏:一排 7 个能量球,两人轮流拿,每次拿 1 个或 2 个相邻的,拿完者胜。先手怎么走?

提示:这是 Kayles 游戏的简化版。必败态:剩下 1 个(先手拿完胜),剩下 2 个(先手拿完胜),剩下 3 个? 分析:剩下 1 个 → 当前玩家胜。剩下 2 个(相邻)→ 当前玩家胜(一次拿完)。剩下 3 个 → 当前玩家拿中间 1 个,剩下 2 个不相邻的,对手只能拿 1 个,你拿最后 1 个 → 当前玩家胜。 实际上 7 个时先手有必胜策略(这不是 Nim,具体分析需要 SG 函数,小学阶段可以枚举)。

上面是其中 6 道。登录后可以继续练这一库其余约 2 道。

登录,解锁全部题目