绪论

博弈论又被称为对策论,既是现代数学的一个新分支,也是运筹学的一个重要学科。
博弈论主要研究公式化了的激励结构间的相互作用,是研究具有斗争或竞争性质现象的数学理论和方法。博弈论考虑游戏中的个体的预测行为和实际行为,并研究它们的优化策略。

ICG(公平组合游戏)

在算法竞赛中出现的博弈论往往是ICG(公平组合游戏 Impartial Combinatorial Games)的,这类题目有如下特征:
①有两名选手:
②两名选手交替进行,每次一步,每步都是在有限的合法集合中选取一种进行;
③在任何情况下,合法操作只取决于情况本身,与选手无关
④游戏的败北条件为:当某位选手需要进行操作时,当前没有任何可以执行的合法操作,则该选手败北。

经典的ICG博弈(四个):

一.巴什博奕(Bash Game)

问题:
一堆n个物品,两个人轮流从中取出(1~m)个,最后取光着胜(或者不能继续取的人输)

应用知识:
根据同余定理:将n改写为以下形式,n=K*(m+1)+r;(r为余数)

结论:
n=K*(m+1)+r(r为余数),如果先取者拿走r个,那么后者无论拿走(1~m)多少个,先手者只要所拿的数目的和为m+1个,那么先手就必赢(因为这样取最后一定会剩下m+1个,后者无论取多少个,先手都会是最后那个取光的人)。
反之,若n=K*(m+1),(即如果没有余数r)那么先者不管怎样都会输。

算法模板:


if(n%(m+1)) return false;
else return true;

二.威佐夫博弈(Wythoff game)

问题:
有两堆各若干个物品,两个人轮流从任意一堆中取出至少一个或者同时从两堆中取出同样多的物品,规定每次至少取出同样多的物品,规定每次至少取一个,至多不限,最后取光着胜利。

应用知识:
利用黄金分割比:把一条线段分割为两部分,使较大部分与全长的比值等于较小部分与较大的比值,则这个比值即为黄金分割。其比值是**(√5-1):2**,近似值为0.618

结论:
首先求出差值,若差值*黄金分割比==最小值的话后手赢,否则先手赢。

算法模板:


double r=(sqrt(5.0)+1)/2;   //首先求出黄金分割比 ,浮点型
int d=abs(a-b)*r;         //用差值的绝对值乘上黄金分割比
if(d!=min(a,b)) return true;  //若这个数不等于他们两个的最小值,先手获胜
else return false;      //否则,后手胜 

注意:

注意这里的黄金的分割比用的浮点型double,而差值*黄金分割比用的是整型,这里可能就会存在精度丢失的问题,所以需要注意精度问题,即问题中所给出的两堆石子的范围,如果两堆石子的范围相当大的话,需要通过高精度来计算这个double。

巴什博奕(Bash Game)与威佐夫博弈(Wythoff game)相关推荐

  1. 巴什博奕(Bash Game)入门

    巴什博奕(Bash Game)入门 巴什博奕(Bash Game): 只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个.最后取光者得胜 结论:若(m+1) | n,则先手必 ...

  2. 基础博弈论(巴什博奕、斐波那契博弈、威佐夫博奕、尼姆博奕)

    [前言] 今天才算是搞明白了(??)最基本的四种博弈 [小结] 1.巴什博奕(Bash Game) 一堆中取石子,两个人轮流取石子,每次取石子量至少为1,至多为m,先取完者胜利. 当n%(m+1)== ...

  3. 三种典型的博弈论问题之巴什博奕(Bash Game)

    什么是博弈论 官方回答: 博弈论,又称为对策论(Game Theory).赛局理论等,既是现代数学的一个新分支,也是运筹学的一个重要学科. 博弈论主要研究公式化了的激励结构间的相互作用,是研究具有斗争 ...

  4. 博弈论基础知识: 巴什博奕+斐波那契博弈+威佐夫博奕+尼姆博弈(及Staircase)

    博弈论基础知识: 巴什博奕+斐波那契博弈+威佐夫博奕+尼姆博弈(及Staircase) 转载自: http://tieba.baidu.com/p/1474319443 http://blog.sin ...

  5. 博弈基础与例题分析(巴什博弈威佐夫博弈尼姆博奕 斐波那契博弈SG博弈)

    文章目录 巴什博弈Bash Game 威佐夫博弈Wythoff Game 尼姆博奕 斐波那契博弈:算法如其名 SG博弈 图 mex(minimal excludant)运算 获得sg表 应用 A Br ...

  6. 【小组专题二:博弈论入门综述(1)】NP状态 | SG函数 | 巴什博奕、威佐夫博弈、斐波那契博弈、Nim游戏、SJ定理

    博弈论综述[1] 前言 博弈与博弈论 博弈树 NP状态 SG函数(Sprague-Grundy) Sprague-Grundy Theorem 巴什博奕 Bash Game 威佐夫博弈 扩展威佐夫博弈 ...

  7. 博弈论(巴什博奕,威佐夫博弈,尼姆博弈)

    巴什博奕(Bash Game): 只有一堆n个物品,两个人轮流从中取物,规定每次最少取一个,最多取m个,最后取光者为胜 举一个最简单的例子就是,当n=m+1时,此时不管先手取多少,后手都能把剩下的取完 ...

  8. 博弈论(巴什博奕,威佐夫博弈,尼姆博弈,斐波那契博弈)

    一.  巴什博奕(Bash Game): A和B一块报数,每人每次报最少1个,最多报4个,看谁先报到30.这应该是最古老的关于巴什博奕的游戏了吧. 其实如果知道原理,这游戏一点运气成分都没有,只和先手 ...

  9. 四种基础博弈 巴什博奕+威佐夫博奕+斐波那契博弈+K倍博弈

    博弈论(Game Theory) 博弈论是指研究多个个体或团队之间在特定条件制约下的对局中利用相关方的策略,而实施对应策略的学科.有时也称为对策论,或者赛局理论,是研究具有斗争或竞争性质现象的理论和方 ...

最新文章

  1. CV 面试问题详解宝典—目标检测篇
  2. 如何在geth中创建genesis.json_如何在Photoshop中应用“通道混合器”创建一个复古韵味色调...
  3. 解决update-apt-xapi占用资源过高的问题
  4. 删除mongodb库
  5. java 两个stream合并_Java Stream 流如何进行合并操作
  6. Linux 答疑:Linux 中 apt 与 apt-get 命令有何区别,我们该选择 apt 还是 apt-get?
  7. python之gevent模块实现协程
  8. eclipse下tomcat临时目录位置
  9. freertos 编译c++失败_FreeRTOS的初次见面
  10. 热水器是长期开着好还是要等到用的时候才开?
  11. 如何从javascript检索GET参数? [重复]
  12. MATLAB中的corrcoef函数求两个向量的相关系数。
  13. 【操作系统】CPU寄存器详解
  14. ORACLE 如何获取uid
  15. 5步搭建免费图床(CDN图床)再也不用担心网站网速与内存了
  16. 双色球彩票核心算法(java)
  17. 一文看完澜舟科技被EMNLP'22录用的三篇论文
  18. 金仓数据库 KingbaseES SQL 语言参考手册 (13. SQL语句:ALTER SYNONYM 到 COMMENT)
  19. 怎么理解CPU与显卡的关系
  20. linux 登陆sybase_SYBASE在linux下的安装

热门文章

  1. 打一句英文句子,找出其中最长的单词
  2. 启动异常:java.lang.NoClassDefFoundError: org/apache/curator/framework/CuratorFrameworkFactory 解决方法
  3. Python标准库笔记(9) — functools模块
  4. 天地图解析(瓦片层级、比例尺、行列号计算)
  5. 文通表格票据识别系统介绍
  6. 游戏Clockmaker在华为AppGallery上线;Omdia联合浪潮共同发布《全球开放计算发展报告》 | 全球TMT...
  7. 汇编习题之某机指令字长16位,共有单地址指令和双地址指令两类,若每个地址字段均为5位,且双地址指令已用了X条,问单地址指令最多可以有多少条?
  8. 猎豹浏览器 自动填充功能
  9. 奇虎360在NASDAQ上市感想
  10. 怎么设置uboot从u盘启动linux,rt5350使用uboot从u盘启动linux成功含从u盘加载镜像与rootfs...