博弈论
阶梯博弈
只用考虑奇数阶的台阶,偶数阶的不用考虑(对手会把它再变回偶数阶)。
主要代码:
for(int i=1;i<=n;i++) a[i]=rd();
for(int i=n;i>=1;i-=2) ans^=(a[i]-a[i-1]);
if(ans) // 先手必胜
手玩博弈
不难发现:
\[f(n)=\begin{cases}x&(x\in F)\\f(x-t_{max})&(x\notin F,t_{max}\in F,t_{max}<x)\end{cases}
\]
混合战略纳什均衡
制作博弈决策表格。
Nim 游戏
K-Nim 游戏
有 \(n\) 堆棋子,每次可以一方选择其中 \(k\) 堆取棋子,首先不能取的一方输。
结论:所有石子的异或和 \(\bmod{k+1}=0\)。
反 Nim 游戏
有 \(n\) 堆棋子,每次可以一方选择其中 \(1\) 堆取棋子,取走最后一颗石子的输。
结论:(满足下面任意一个条件,先手必胜)
-
所有棋子都为 \(1\) 且有偶数堆。
-
至少有一堆 \(>1\) 且异或和不等于 \(0\)。