随笔分类 -  算法基础:博弈论

摘要:一、取走游戏 ​ 首先,我们介绍一下组合游戏。组合游戏是一种两个人参与的游戏,参与者拥有完整的(有关游戏的)信息,没有任何意外产生的操作(即保证无意外性),并且游戏拥有一个输赢的结果。这样的游戏是由一系列的位置,包括一个起始位置,和哪个参与者进行下一步所组成、决定的。游戏在参与者的选择中从一步移向下 阅读全文
posted @ 2021-07-29 19:43 RioTian 阅读(995) 评论(0) 推荐(1) 编辑
摘要:博弈算法中比较经典的一个博弈问题是巴什博奕,巴什博弈是这样的: 有一堆物品,数量为n,两个人轮流取,规定每次最多取m个,最少取1个。 我们定义先取者为F(first),后取者为S(second) 网上讲的很多不是很容易理解,我来讲一个非常容易理解的思路。 **推理1:**显然,如果n=m+1,那么由 阅读全文
posted @ 2020-11-23 19:50 RioTian 阅读(369) 评论(0) 推荐(1) 编辑
摘要:有一段时间没记录知识类的博客了,这篇博客就说一下SG函数和SG定理吧 SG函数是用于解决博弈论中公平组合游戏(Impartial Combinatorial Games,ICG)问题的一种方法。 什么是组合游戏 在竞赛中,组合游戏的题目一般有以下特点 题目描述一般为Alice、Bob 2人做游戏 A 阅读全文
posted @ 2020-11-04 19:23 RioTian 阅读(673) 评论(2) 推荐(1) 编辑
摘要:题目分析: 这是一个经典的Multi-SG游戏的问题。 相较于普通的Nim游戏,该游戏仅仅是多了拆成两堆这样的一个状态。即多了一个SG(x+y)的过程。 而根据SG定理,SG(x+y)这个游戏的结果可以拆成SG(x)和 SG(y)游戏的结果的xor。 因此,在我们求SG函数的过程中,我们只需要再** 阅读全文
posted @ 2020-09-10 19:54 RioTian 阅读(139) 评论(1) 推荐(0) 编辑
摘要:题目链接: https://vjudge.net/problem/HDU-2897 题目大意: 就是现在一堆石子有n颗, 每次只能拿走p~q颗, 当剩余少于p颗的时候必须一次拿完 拿走最后一颗的人败 问谁会获得胜利 大致思路: 首先不难发现当n ⇐ p的时候是必败点(P点),那么对于p + 1 ⇐ 阅读全文
posted @ 2020-09-10 19:31 RioTian 阅读(150) 评论(0) 推荐(0) 编辑
摘要:在面试的过程中,除了常规的算法题目,我们经常也会被问到一些趣味题型来考察思维,而这类问题中,很多都有博弈论的影子存在。这些公司里以FLAG(Facebook, LinkedIn, Amazon, Google)为典型,特别喜欢考察本类题型。同时,本系列将不一定都是算法问题,不是IT行业的小伙伴也可以 阅读全文
posted @ 2020-09-02 17:30 RioTian 编辑
摘要:古语有云,“笑人情似纸,世事如棋”。生活中每个人如同棋手,其每一个行为如同在一张看不见的棋盘 上布子,精明慎重的棋手们相互揣摩、牵制、争赢,下出诸多精彩纷呈、变化多端的棋局。而什么是博 弈论?就是研究棋手们 的“出棋” 过程,从中抽象出可逻辑化的部分,并将其系统化的一门科学,也是运 筹学的一个重要学 阅读全文
posted @ 2020-06-02 18:18 RioTian 阅读(1122) 评论(0) 推荐(1) 编辑
摘要:题目链接:http://poj.org/problem?id=2484 题意:Alice和Bob玩游戏,从一堆圆环形排列的硬币中拿硬币,每次可以拿一个或者两个,但必须拿连续的(两个中间有空位也视为不连续),Alice先手,给定硬币个数,问谁赢。 题解: 当n=1或者n=2时,Alice可以一下子取走 阅读全文
posted @ 2020-05-30 21:16 RioTian 阅读(155) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示