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