威佐夫博弈是博弈中的另一个经典模型。

问题:首先有两堆石子,博弈双方每次可以取一堆石子中的任意个,不能不取,或者取两堆石子中的相同个。先取完者赢。

分析:首先我们根据条件来分析博弈中的奇异局势

第一个(0 , 0),先手输,当游戏某一方面对( 0 , 0)时,他没有办法取了,那么肯定是先手在上一局取完了,那么输。

第二个 ( 1  , 2  ),先手输,先手只有四种取法,

1)取 1 中的一个,那么后手取第二堆中两个。

2)取 2 中一个,那么后手在两堆中各取一个。

3)在 2 中取两个,那么后手在第一堆中取一个。

4)两堆中各取一个,那么后手在第二堆中取一个。

可以看出,不论先手怎么取,后说总是能赢。所以先手必输!

第三个 ( 3 , 5 ),先手必输。首先先手必定不能把任意一堆取完,如果取完了很明显后手取完另一堆先手必输,那么

假如看取一堆的情况,假设先手先在第一堆中取。 取 1 个,后手第二堆中取4个,变成(1 ,2)了,上面分析了是先手的必输局。

取 2 个,后手第二堆中取3个,也变成( 1 , 2)局面了。

假设先手在第二堆中取,取 1 个,那么后手在两堆中各取 2 个,也变成 ( 1 , 2 )局面了。

取 2 个 ,那么后手可以两堆中都去三个, 变成 ( 0 , 0)局面,上面分析其必输。

取  3  个,后手两堆各取 1 个 ,变成( 1 , 2)局面了。

取 4 个,后手在第一堆中取一个,变成( 1 , 2)局面了。

可见不论先手怎么取,其必输!

第四个(4  , 7),先手必输。

自己推理可以发现不论第一次先手如何取,那么后手总是会变成前面分析过的先手的必输局面。

那么到底有什么规律没有呢,我们继续往下写。

第四个 ( 6 ,10  )

第五个 ( 8 ,13)

第六个 ( 9 , 15)

第七个 ( 11 ,18)

会发现他们的差值是递增的,为 0 , 1 , 2, 3, 4 , 5 , 6, 7.....n

而用数学方法分析发现局面中第一个值为前面局面中没有出现过的第一个值,比如第三个局面,前面出现了 0  1 2,那么第三个局面的第一个值为 3 ,比如第五个局面,前

面出现了 0  1  2 3 4 5 ,那么第五个局面第一个值为6。

再找规律的话我们会发现,第一个值 = 差值 * 1.618

而1.618 = (sqrt(5)+ 1) /  2 。

大家都知道0.618是黄金分割率。而威佐夫博弈正好是1.618,这就是博弈的奇妙之处!

下面来看看威佐夫博弈常见的三类问题:

1)给你一个局面,让你求是先手输赢。

有了上面的分析,那么这个问题应该不难解决。首先求出差值,差值 * 1.618 == 最小值 的话后手赢,否则先手赢。(注意这里的1.618最好是用上面式子计算出来的,否则精

度要求高的题目会错)

2)给你一个局面,让你求先手输赢,假设先手赢的话输出他第一次的取法。

首先讨论在两边同时取的情况,很明显两边同时取的话,不论怎样取他的差值是不会变的,那么我们可以根据差值计算出其中的小的值,然后加上差值就是大的一个值,当

然能取的条件是求出的最小的值不能大于其中小的一堆的石子数目。

加入在一堆中取的话,可以取任意一堆,那么其差值也是不定的,但是我们可以枚举差值,差值范围是0 --- 大的石子数目,然后根据上面的理论判断满足条件的话就是一种合理的取法。

博弈之威佐夫博弈详解相关推荐

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

    文章目录 一.巴什博弈 二.威佐夫博弈 三.尼姆博弈 一.巴什博弈 一堆n个物品,两个人从中轮流取出1~m个,最后取关者胜. 同余定理:n=K*(m+1)+r;先取者拿走r个,那么后者无论拿走(1~m ...

  2. Nim博弈和威佐夫博弈 Return of the Nim

    Nim博弈 Nim游戏的概述: 还记得这个游戏吗? 给出n列珍珠,两人轮流取珍珠,每次在某一列中取至少1颗珍珠,但不能在两列中取.最后拿光珍珠的人输. 后来,在一份资料上看到,这种游戏称为" ...

  3. 巴什博弈、威佐夫博弈、妮姆博奕、斐波那契博弈

    巴什博弈 一堆   n个物品    两人轮流从中取物品    每人至少拿一个  最多拿m个    将这堆物品最后取完的是winner 先手胜利条件-------------   n%(m+1)!=0 ...

  4. HDU 5754 博弈(威佐夫博弈)

    这个题除了皇后的可以套用一下威佐夫博弈以外其他的都可以找规律找出来,主要为了学习一下威佐夫博弈, 威佐夫博弈:给两堆石子,每次都可以从其中一堆石子中取n个石子或者从两堆石子中都取n个石子,最后将石子取 ...

  5. 博弈论入门之威佐夫博弈

    威佐夫博弈 威佐夫博弈是一类经典的博弈问题 有两堆石子,两个顶尖聪明的人在玩游戏,每次每个人可以从任意一堆石子中取任意多的石子或者从两堆石子中取同样多的石子,不能取得人输,分析谁会获得胜利 博弈分析 ...

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

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

  7. BZOJ3298[USACO 2011Open]cow checkers——威佐夫博弈

    题目描述 一天,Besssie准备和FJ挑战奶牛跳棋游戏.这个游戏上在一个M*N的棋盘上, 这个棋盘上在(x,y)(0<=x棋盘的左下角是(0,0)坐标,棋盘的右上角是坐标(M-1,N-1). ...

  8. 巴什博弈+威佐夫博弈

    1.巴什博弈(Bash Game) 只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个. 最后取光者胜 若n%(m+1)==0,后手必胜,反之,先手必胜. 最后取光着输 当( ...

  9. POJ1067_取石子游戏_威佐夫博弈

    /* *State: 1067 Accepted 176K 16MS C++ 435B *题目大意: * 威佐夫博弈 *解题思路: * 略. */ #include <iostream> ...

最新文章

  1. 如何让机器像人一样多角度思考?协同训练来帮你
  2. JS页面加载完成触发事件
  3. 使用云计算灾难恢复计划制定勒索软件恢复策略
  4. ASP.NET 应用程序生命周期概述
  5. 【Flask】flask入门以及第一个flask项目的创建
  6. Boost:标准地图比较的测试程序
  7. 【Python②】python之首秀
  8. 【转】C#中StreamWriter与BinaryWriter的区别兼谈编码。
  9. JS高级——模块化学习笔记
  10. Berttransformer
  11. 对比特币勒索病毒进行批量安装永恒之蓝补丁
  12. 一步一步教你使用AgileEAS.NET基础类库进行应用开发-系列目录
  13. 把执行结果转成json对象报错_给Hangfire的webjob增加callback和动态判断返回结果功能设计...
  14. PHPExcel 表格 行 合并
  15. 手机电脑普通浏览器或UC浏览器缓存或下载的Y2hlbmppbmdjb25n0 Y2hlbmppbmdjb25n1 m3u8视频.ts格式视频合并工具成一个mp4
  16. 为什么许多器件的片选信号低电平有效,而不是高电平有效?
  17. 手机端获取用户详细地理位置(腾讯地图/高德)
  18. Python---python3.7.0---如何安装PIL
  19. EXCEL密码破解/破解工作表保护密码(详细图文教程)
  20. linux ide sata硬盘,Linux 下SATA与IDE硬盘区别

热门文章

  1. iOS即时通讯从入门到“放弃”?
  2. 别用老派交易员眼光看市场回调
  3. 模拟SPI驱动SD卡
  4. 这么设置USB Copy数据就能轻松备份到NAS
  5. 再见Spring Security、推荐一款功能强大的权限认证框架
  6. BSV上的高效 zk-SNARK:技术解释
  7. 操作系统实验报告【太原理工大学】
  8. python基础知识之整除、取余、幂运算
  9. Validform使用说明
  10. nginx学习--nginx下的gzip与vary、预压缩、缓存、反向代理的结合