news 2026/7/22 12:12:00

博弈论讲解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
博弈论讲解

简单图上博弈

博弈树

其实就是记录你每一步决策的状态。

比如:

5 个石子,Alice 和 Bob 轮流取,每次取 1 到 2 颗,取到最后一颗的人胜,Alice 先手问她的必胜决策。

5 Start | \ 4 3 Alice | \ \ \ 3 2-+ 2-+ 1 Bob | \ \ \ \ \ \ 2 1 1 0 1 0 0 Alice |\ \ \ \ 1 0 0 0 0 Bob | 0 A

其中旁边的字母代表现在轮到了谁,数字表示当前还剩几颗,这就差不多是博弈树。

然后求答案就从出边为 0 的开始计算,有点类似 Topo 排序。

题目

P4096

P7135

这里我认为第二道题不那么像模板题,第一道题就是模板题,因此我讲第二道:

P7135

这是我做的第一道交互题,只不过它也不是很难。

如果你发现的仔细的话,你就可以填出一个幻方(这里不展示),包含这几个数字,每一行、每一列、每一条对角线都是 15,因此我们发现这不就是井字棋吗?

于是直接建出博弈树就做完了。

如果你玩过井字棋的的话,你也可以直接写程序暴力和交互库下棋。

code:

不好意思的是我是直接和他下棋并没有建博弈树。

提示:先手下角(网上有说为什么),后手堵桥(就把交互库第一步下的位置直接提前每个出一套对策直接干)。

有向图博弈

这玩意很好做,博弈方式直接建出树,只不过有可能有两个父节点同时拥有同一个子节点(继父???),只不过这问题也不大(父母离异问题还不大?孩子心理会有问题)

划掉的部分是我同学说的,但我想回一句:

你是不知道红黑树是吧?孙子的孙子秒变爷爷的爷爷!!!

这是数据结构和家谱没有问题。

但是,DAG只存在于有向无环图,有环怎么办???(啥?孙子结婚生了爷爷???(见过基环树吗?也有环))

没关系,我们可以发现,只要这种情况出现了,肯定平局,不然跳出这个环外的人就输了!!!

题目

CF786A

P6560

P9169

都是模板题,没必要讲。

公平组合游戏(Nim 游戏)

博弈论部分由于以思维为主,很少作为一个知识点用来考察。但以nim 游戏为代表的公平组合游戏,是一个很容易考场的知识点。

公平博弈(impartial game)指满足如下条件的组合博弈:
在任意确定状态下,所有参与者可选择的行动完全相同,仅取决于当前状态,与身份无关;
博弈中的同一个状态不可能多次抵达,博弈以参与者无法行动为结束,且博弈一定会在有限步后以
非平局结束。
nim 游戏:有堆石子,第堆石子有颗石头,先后手轮流操作,每次可以选择一堆石子,然后从中选大于 0 个石头扔掉。谁在操作后场上所有石头清空,谁获胜。
所有的公平组合游戏,都可以转化 为nim 游戏。

我们直接给出结论:一个状态为先手必败,当且仅当所有石子的异或和为 0。
证明是这样的:不妨把上述状态称为必败。显然,当时,这就是一个必败态。
现在对于任意一个非必败态,可以证明一定存在一种操作方案,使得一次操作之后转化为必败态,
且对于一个必败态,操作一次必然成为一个非必败态,因此证明完毕。
于是我们可以线性复杂度判断一局 nim 游戏的状态了。

这个理论可以把所有的公平组合游戏转化为nim 游戏。
首先公平组合游戏有很多不同的“局”,比如nim 游戏中,就有局游戏,每一局游戏都是一堆石子,
虽然单堆石子很简单,但是它也可以看做一张有向无环图博弈:连边为必败点。
而所有的“局”都是一张有向无环图。
我们定义图上一个点的函数值为所有它可以到达的点的值的 mex。且必败态的值为 0。
把所有游戏起点的异或起来,不为 0 则为必胜态。

knim 游戏,与 nim 游戏的区别在于每次可以至多拿堆石子。
阶梯nim,每次可以在一堆里面选出大于 0 个石子,然后放到下一堆,特殊的,对于第一堆选出来
的石子会直接扔掉。
树上nim,选出来的石子放到父节点上,根上的直接扔掉。
树上博弈,给你若干个有根森林,每次删掉一颗子树(根不能删),谁不能操作谁输。

题目

听懂了就会做,因为都是模板题:

P2148

P2575

P6639

P13114

此处不讲题,如果实在要我讲,我会另出一篇文章讲,要讲在评论区说。

后记

反正你在考场上遇到这类题,要不是思维题,要不是模板题,都不是就想想其他做法吧。

如果你想再做点这类题的话可以尝试做这道题。

这道题和 P7135 一样也是比较有意思的题目,可以好好想一想,也提升了能力(你水了一道黑题!!!巨佬爆切黑题!!!巨~~~膜拜~~~)

对了,你们想不想看 DEVC++ 的神秘用法,想看在评论区里说。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/22 12:10:31

远程工具软件有哪些好用 远程工具推荐

远程工具软件有哪些?需要异地处理多份资料、远程多窗口并行操作时,不少人都希望找到能流畅稳定、无额外消费的远控软件。远程工具软件有哪些比较好用的呢?市面上的远控软件种类繁多,很难适配设计、数据办公场景,想要兼…

作者头像 李华
网站建设 2026/7/22 12:09:57

【小程序课程设计/毕业设计】基于 JavaWeb 的本地旅游服务综合平台 安阳特色文旅资讯、路线规划服务系统 面向游客的畅玩安阳信息交互平台实现【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/7/22 12:06:56

C语言文件相关操作

一、文件操作的基本概念文件的定义与分类(文本文件、二进制文件)文件指针(FILE结构体)的作用文件打开与关闭的必要性文件的定义:磁盘(硬盘)上的⽂件是⽂件。分类:程序⽂件(源程序⽂件…

作者头像 李华
网站建设 2026/7/22 12:06:16

Flower:Celery集群监控与管理的可视化利器

1. Flower:Celery集群监控与管理的利器 第一次在生产环境部署Celery时,我盯着黑漆漆的终端日志看了整整三天。直到发现Flower这个神器,才真正体会到什么叫"可视化运维"的幸福感。作为Celery生态中最成熟的监控工具,Flow…

作者头像 李华
网站建设 2026/7/22 12:06:15

GPMC时序参数详解:异步与同步模式下的内存访问控制

1. GPMC时序参数详解:异步与同步模式下的内存访问控制 在嵌入式系统开发中,处理器与外部存储器的通信是决定系统性能与稳定性的关键环节。无论是运行在微控制器上的实时操作系统,还是运行在应用处理器上的复杂Linux应用,都需要频繁…

作者头像 李华