Files
python/TangDou/AcWing_TiGao/T5/GameTheory/博弈论.md
HuangHai 1f397eca87 'commit'
2025-08-30 18:35:01 +08:00

5.1 KiB
Raw Blame History

博弈论入门

原文地址

古语有云,“笑人情似纸,世事如棋”。生活中每个人如同棋手,其每一个行为如同在一张看不见的棋盘上布子,精明慎重的棋手们相互揣摩、牵制、争赢,下出诸多精彩纷呈、变化多端的棋局。而什么是博弈论?就是研究棋手们的“出棋” 过程,从中抽象出可逻辑化的部分,并将其系统化的一门科学,也是运筹学的一个重要学科。

博弈论的题目有如下特点:

  1. 博弈模型为两人轮流决策的博弈。并且两人都使用最优策略来取得胜利。
    • 两个玩家,都会采取最优的决策,那么如果存在一个局面为必胜局面,某玩家位于此局面。只要自己无失误,则必胜。那么同样又一个局面为必败局面,某玩家位于此局面。只要对手无失误,则必败。
    • 那也就是说,针对这样的游戏,我们关注点应该在局面上。
  2. 博弈是有限的。即无论两人如何决策,都会在有限步决出胜负。
  3. 博弈是公平的。即两人进行决策的规则相同。

相关概念:

  • 先手必胜状态:先手可以从这个状态走到某一个必败状态。
  • 先手必败状态:先手走不到任何一个必败状态。
  • 也就是说先手必胜状态,那么先手一定能采取某些操作,让后手面对必败态。如果是先手必败态,无论先手怎么操作,都无法让后手面对必败态。

简单博弈的基本题型

1、$bash$博弈 (巴什博奕)

假设一堆石子有$n$个,每次最多取$m$个,甲乙两个玩家轮流取石子,最后把石子取完的人获胜,保证甲乙每一步的决策都是最优的,请问给定$n$和$m$,问甲胜还是乙胜。

解答: 不妨假设刚刚开始 $\large \displaystyle n = m + 1$,那么不管先手取几个,后手必胜,有如下推论:

令 n = (m + 1)*r+s 其中(r > 1,0 <= s < m + 1)

  • 如果$s=0$的话,先手每次取$k$个,后手只要取$(m+1-k)$个即可,后手必赢。
  • 如果$s>0$的话,先手者第一次取$s$个,后手第一次取$k$个,接下来先手只要取$(m + 1 - k)$个即可,先手必赢。

结论: $$n \ mod (m+1) \large \left{\begin{matrix} =0 & 先手必败 \ ≠0 & 先手必胜 \end{matrix}\right. $$
练习题

$HDU2188$

$HDU1846$

$HDU1847$


2、$nim$游戏

假设有$n$堆石子,每堆石子分别有$a_1,a_2,…,a_n$个,每次可以选择任意一堆且至少取$1$枚石子, 甲乙两个玩家轮流取石子, 最后把石子取完的人获胜, 保证甲乙每一步的决策都是最优的, 甲为先手操作, 问甲胜还是乙胜。

结论: $$a_1∧a_2∧…∧a_n = \left{\begin{matrix} =0 & 先手必败 \ \neq 0 & 先手必胜 \end{matrix}\right.


</b></font>

证明:
* 当$a$不全为$0$时, 任意一个$res!=0$的局面, 先手可以通过一定的操作让后手面对$res=0$的局面。

* 对于任意一个$res=0$的局面, 先手无法通过任何操作让后手面对$res=0$的局面。

得出结论, 当$res=0$时先手必败, 反之必胜。

[详细证明](https://i.cnblogs.com/posts/edit-done;postId=15391869)


练习题
[$AcWing$ $891$. $Nim$游戏](https://www.cnblogs.com/littlehb/p/15391869.html)

[$HDU1850$](https://www.cnblogs.com/littlehb/p/16403971.html)

[$HDU2176$](https://www.cnblogs.com/littlehb/p/16403990.html)

[$HDU1730$](https://www.cnblogs.com/littlehb/p/16403933.html)

--- 

#### 3、$Nim$博弈拓展-台阶$Nim$
**问题描述**: 有一个$n$级台阶的楼梯, 每级台阶上有若干个石子, 其中第$i$级台阶上有$a_i$个石子($i≥1$)。两位玩家路轮流操作, 每次操作可以从任意一级台阶上拿若干个石子放到下一级台阶上(不能不拿)。
已经拿到地面的石子不能再拿, 最后无法进行操作的人视为失败。问如果两人都采取最优策略, 先手是否必胜。

<font color='red' size=5><b>结论
$$res=a_1∧a_3∧a_5∧,…,∧a_n
\large \left\{\begin{matrix}
 =0  & 先手必败 \\ 
 \neq 0  & 先手必胜 
\end{matrix}\right.
$$ (这里的$n$是奇数)
</b></font>

练习题:
[$AcWing$ $892$ 台阶-$Nim$游戏](https://www.cnblogs.com/littlehb/p/15391920.html)

[$POJ1704$(台阶Nim)](https://www.cnblogs.com/littlehb/p/16404976.html)

[$HDU4315$(台阶Nim)](https://acm.hdu.edu.cn/showproblem.php?pid=4315) 
此题太难理解了,暂时没整上,明天继续

#### 4、$Wythoff$博弈(威佐夫博弈)
#### 5、$Fibonacci$博弈
#### 6、$sg$函数

https://www.cnblogs.com/RioTian/p/13032919.html
https://blog.csdn.net/qq_42505741/article/details/84330302
https://blog.csdn.net/bbhhtt/category_7312898.html
https://www.cnblogs.com/zzz-hhh/p/13625295.html


[HDU4764 Stone]