文章目录

  • 问题定义
  • 解法

问题定义

问题存在两种不同的形式:

  • A和B两个人玩游戏,假设有n个物品,每人每次必须至少拿1个,最多拿m个,先拿到最后一个物品的人获胜。思考一种最佳策略?
  • A和B两个人玩游戏,假设有n个物品,每人每次必须至少拿1个,最多拿m个,先拿到最后一个物品的人失败。思考一种最佳策略?

存在很多变种,比如喊数字等等,但核心都是一样的。

解法

首先给出结论,不管n和m的取值如何,问题都存在唯一解,即该游戏不公平。

赛制1:先拿完的人获胜

首先对n进行分解,n = k(m+1) + l,将n转化成与m+1相关的形式。假设A先拿,B后拿

  • 如果l=0,即n能被m+1整除,此时B(后手)必胜。因为无论A拿多少(x),B只需要拿m+1-x个即可,这样在最后一个轮次时,还剩m+1个,在至少拿1个最多拿m个的限制下,B一定能拿完。
  • 反之,如果l!=0,此时A(先手)必胜,A在只需要先拿l个,就能B陷入上一种情况。

结论:n%(m+1)==0时,B必胜,否则A必胜。

赛制2:先拿完的人失败

分析:相比于赛制1,直接思考赛制2可能更复杂,但换个角度想,其实就相当于变成了先拿完n-1个物品的人获胜,因为每次至少要拿1个,只要谁先拿到n-1个物品,剩下的那个人就必须拿完。因此,把赛制1的中的n换成n-1即可。

结论:n%(m+1)==1时,B必胜,否则A必胜。

有趣的巴什博弈(Bash Game)相关推荐

  1. 1663 例题1 取石子游戏1(LOJ10241) 巴什博弈 Bash game

    总目录 在线测评地址(ybt) 在线测评地址(LOJ) 1.巴什博弈 Bash game ybt 通过 测试点 结果 内存 时间 测试点1 答案正确 600KB 2MS 测试点2 答案正确 608KB ...

  2. Good Luck in CET-4 Everybody! (巴什博弈 bash game)

    Good Luck in CET-4 Everybody! Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Ja ...

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

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

  4. 关于博弈基础知识的总结:巴什博弈(Bash Game)、威佐夫博奕(Wythoff Game)、尼姆博奕(Nim Game)

    转载自http://www.aiuxian.com/article/p-942548.html 博弈论是二人或多人在平等的对局中各自利用对方的策略变换自己的对抗策略,达到取胜目标的理论. 基础的基础 ...

  5. HDU2188 选拔志愿者【巴什博弈】

    选拔志愿者 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  6. 博弈论(1)——巴什博弈

    一.巴什博弈(Bash Game,同余理论): 只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个.最后取光者得胜.显然,如果n=m+1,那么由于一次最多只能取m个,所以,无 ...

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

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

  8. 【算法与数据结构】—— 博弈论(初级篇之巴什博弈)

    博弈论之巴什博弈 巴什博弈(Bash Game): 有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个(m<n).最后取光者得胜. 分析: 显然,如果n=m+1,那么由于 ...

  9. 巴什博弈例题:NYOJ23;HDU:2149,1847,2897,2188

    巴什博弈: 只有一堆n个物品,两个人轮流从这堆物品中取除,每次取的个数为[1,m](至少去一个,最多取m个),最后取完者获胜 特征: 物品只有一堆,简单变形: 要么在范围内不规定个数,要么规定只能取几 ...

最新文章

  1. 2022-2028年中国海水养殖行业市场研究及前瞻分析报告
  2. Jquery ajax 返回string类型加result.d原因
  3. 在不root手机的情况上读取Data目录上的文件
  4. 动态规划 RQNOJ 吃西瓜 最大子段和三维版
  5. 修改Docker容器字符编码为-zh_CN.UTF-8中文字符集
  6. 2019牛客网暑假多校训练第四场 K —number
  7. java中File类应用:遍历文件夹下所有文件
  8. Spark写Redis+Spark资源配置总结
  9. C++trie类的实现(附完整源码)
  10. 记一个鼠标略过时候的css动画
  11. 【设计模式 06】原型模式(克隆??)
  12. Linux kill 杀死指定进程
  13. Failed installing 'Tomcat9' service
  14. python接口自动化之自动发送测试报告邮件
  15. Manjaro 开发环境配置和使用技巧
  16. ETCD 源码学习--Raft 选举的 Quorum 机制实现(七)
  17. 68 个 Python 内置函数详解
  18. 中国程序员开发的远程桌面火了!Mac可用,只有9MB,支持自建中继器
  19. shell字符串截取掐头去尾操作
  20. 【个人项目】项目记录:github链接、设计实现、单元测试、性能分析与改进、PSP完成表格、总结反思

热门文章

  1. 计算机主板 g41,g41主板参数盘点
  2. 数字地 模拟地 电源地 屏蔽地
  3. 【书评活动已开奖】年底总结ing?给你个机会补救一下今年的任务清单!
  4. Linux最常用命令50条【呕心沥血呐,望用之取之】
  5. 非常好用的10个自用figma插件分享
  6. 37岁老将魔笛告别世界杯,海信电视向传奇致敬
  7. 数据太大,记事本打不开怎么办?
  8. PhotoShop彩色图片打印机只有四中颜色操作步骤:
  9. C语言如何判断数独是否正确,会数独的大佬请进。这是个判断九宫格数独是否正确的程序。...
  10. 传播问卷调查数据不够?自己生成假数据!