博弈论
经典的公平组合游戏
nim 游戏
规则
\(n\) 堆物品,每堆有 \(a_i\) 个,两个玩家轮流取走任意一堆的任意个物品,但不能不取。
取走最后一个物品的人获胜。
结论
定义 $ Nim =a_1 \oplus a_2 \oplus \ldots \oplus a_n $ 。
当且仅当 $ Nim = 0 $ 时,该状态为必败状态;否则该状态为必胜状态。
威佐夫博弈
规则
有两堆各若干个物品,两个人轮流从任一堆取至少一个或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,取走最后一个物品的人获胜。
结论
若两堆物品个数分别为 $x , y ( x < y ) $ ,若 $ x = \lfloor ( y - x ) \times \frac{1+\sqrt{5}}{2} \rfloor$ ,则该状态为必败状态;否则该状态为必胜状态。
\(SG\) 函数
任何一个可以用\(SG\)函数解决的问题都可以抽象成一个有向图游戏,\(SG\)函数是用于为这种有向图游戏提供最优策略的。(\(SG(x)=0\) 代表 \(x\) 为必败态,\(SG(x)\ne0\) 代表 \(x\) 为必胜态)
定义 \(\operatorname{mex}\) 函数的值为不属于集合 \(S\) 中的最小非负整数,即:
对于状态 \(x\) 和它的所有 \(k\) 个后继状态 \(y_1, y_2, \ldots, y_k\) ,定义 \(\operatorname{SG}\) 函数:
而对于由 \(n\) 个有向图游戏组成的组合游戏,设它们的起点分别为 \(s_1, s_2, \ldots, s_n\) ,则有定理:当且仅当 \(\operatorname{SG}(s_1) \oplus \operatorname{SG}(s_2) \oplus \ldots \oplus \operatorname{SG}(s_n) \neq 0\) 时,这个游戏是先手必胜的。同时,这是这一个组合游戏的游戏状态 \(x\) 的 \(SG\) 值。
这一定理被称作 \(Sprague-Grundy\) 定理(\(Sprague-Grundy\space Theorem\)), 简称 \(SG\) 定理。
\(SG\) 定理适用于任何公平的两人游戏, 它常被用于决定游戏的输赢结果。