目录

题目背景

解法背景

nim博奕:

巴什博奕:

蛋糕分配问题解法


题目背景

有a块草莓蛋糕,有b块芝士蛋糕,两人轮流拿蛋糕,每次不管是谁只能选择在两种蛋糕中拿一种,拿的数量在1~m中随意,谁先拿完最后的蛋糕谁赢,返回先手赢还是后手赢。

解法背景

nim博奕:

两个人玩游戏,有 n堆石子,每次操作可以选一堆石子拿,最少拿一颗,无子可取者为负。

解法:若各堆石子的数量异或值为0,则一定先手输,否则一定先手赢。

巴什博奕:

只有一堆n个物品,两个人轮流从这堆物品中取物品,规定每次至少取一个,最多取m个。最后取光者得胜。

解法:先手一定赢,先手每次使得取后的物品数量为(m+1)的倍数。

蛋糕分配问题解法

public static String whoWin(int a,int b,int m){if(m>=Math.max(a,b)){  // nim博奕return a!=b ? "先手" : "后手";}if(a==b){// 蛋糕一样多// 先手必输,因为先手不管拿多少// 后手都在另一堆上拿相应多的蛋糕// 继续让两堆一样多// 所以先手必输return "后手";}// 如果啊a!=b,// 关注a,b的差值// 谁先遇到差值为零谁输// 这就是巴什博奕问题// 差值蛋糕数量总共rest个// 每次最少取一个,最多取m个,最后取光的人获胜// 如果rest=(m+1)*k+s,(s!=0),那么先手一定获胜// 因为第一次取走s个// 接下来无论对手怎么取,// 先手都能保证取到(m+1)倍数的蛋糕// 那么循环下去一定能取到差值的最后一个int rest = Math.max(a,b) - Math.min(a,b);return rest%(m+1)!=0 ? "先手" : "后手";}

nim博奕和巴什博奕相关推荐

  1. 力扣(LeetCode)292. Nim游戏 巴什博奕

    你和你的朋友,两个人一起玩 Nim游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头. 拿掉最后一块石头的人就是获胜者.你作为先手. 你们是聪明人,每一步都是最优解. 编写一个函数,来判断你 ...

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

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

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

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

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

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

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

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

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

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

  7. HDU 2149-Public Sale(巴什博奕)

    Public Sale Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit  ...

  8. D - 邂逅明下 HDU - 2897(有点水平的巴什博奕)

    当日遇到月,于是有了明.当我遇到了你,便成了侣. 那天,日月相会,我见到了你.而且,大地失去了光辉,你我是否成侣?这注定是个凄美的故事.(以上是废话) 小t和所有世俗的人们一样,期待那百年难遇的日食. ...

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

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

最新文章

  1. 悠然乱弹:我的开源观
  2. #JS:this的指向及函数调用对this的影响
  3. 华为创造出5g和鸿蒙,拥有5G专利,开发鸿蒙系统:《华为智慧》复盘成长路总结成功之道...
  4. 【C 语言】二级指针作为输出 ( 指针输入 | 指针输出 | 二级指针 作为 函数形参 使用示例 )
  5. redisTemplate.opsForHash()
  6. ES6学习笔记(二):教你玩转类的继承和类的对象
  7. 大话设计模式之原型模式
  8. [C++对象模型][3]指针与数组
  9. 列表转化成数组_30. 把数组排成最小的数
  10. 封装一个操作文件的函数
  11. idea中刷新项目快捷键_IntelliJ Idea 常用快捷键列表
  12. 计算机与软件水平考试中级,2020年计算机软件水平考试可以直接考中级吗
  13. IP修改后自动还原(IP地址无法修改)
  14. 神州数码c语言笔试题,神州数码软件测试工程师笔试C语言题目详解
  15. 搞技术的人生技巧——装贪财
  16. ​5.10.4 操作查询之​追加查询
  17. sp01事务码_修复了Server 2003 SP2上的“新事务无法在指定事务协调器中登记”
  18. CSS---足球场的实现,纪念2022世界杯(:root的使用)
  19. 【NOIP2005 提高组】篝火晚会
  20. 怎么让两个java文件关联,怎么把多个excel文件合并成一个【几个excle合并成一个】...

热门文章

  1. pip install lap出现问题
  2. [ html5 ] 图片默认外边框
  3. 联想小新+Windows10+Ubuntu18.04双系统安装+引导设置过程全记录
  4. linux结束驱动程序,在linux上安装FTDI设备驱动程序[关闭]
  5. 浙大数据结构课后习题 练习一 7-1 Maximum Subsequence Sum (25 分)
  6. 如何安装ps的滤镜插件
  7. java windows 打印机_windows系统 TSC 打印机的JAVA实现
  8. 实时翻译器-实时自动翻译器
  9. 关于mac苹果电脑装win10系统发热严重的解决方法
  10. 【新示例】阿里系行业SaaS,企加云要做IOE的赋能者