题目:

结论:
  1. 假设有三堆石子{3, 4, 5}, 每堆石子分别有3、4、5个石子
  2. 把3、4、5分别转为二进制:011、100、101
  3. 对011、100、101取异或(对位相同取0,相异取1),011^100^101 = 010
  4. 若异或结果为0,那么只要改变任意一堆石子的任意数量则异或结果必定会变为非0
最优策略:
  • 只要每堆石子数量的二进制数求异或结果不为0,则到自己回合的时候改变其中一堆石子数量让异或结果为0

因为只要在我回合结束后把异或结果变为0,那么对手回合则无论他怎么操作,异或结果必定不为0 —> 在他当前回合一定无法取完所有石子,最后一个回合我赢的局面一定是取完石子后每堆石子数量都为0 —> 异或结果为0。

解决本问题思路:
  • 如果双方都采取上面的最优策略
  • 根据上面的推导可知:只要先手的那个人最开始面对的那几堆石子二进制数异或为0,那么他一定输,反之他一定赢
  • 即只需要判断初始的石堆二进制异或是否为0 <=> 初始的石堆的几堆石子数量异或是否为0(因为一个数的十进制数异或为0 当且仅当 其二进制数异或为0)
   public static boolean solve(int[] A) {int res = 0;for (int value : A) {res ^= value;}return res != 0;//不为0就会赢}

博弈论 ----- Nim游戏相关推荐

  1. [博弈论] Nim游戏及SG函数(经典+台阶+集合+拆分)

    文章目录 0. 前言 1. Nim 游戏+模板题 2. 台阶 - Nim 游戏+变种题 3. Mex运算与SG函数 4. 集合 - Nim 游戏+变种题 5. 拆分 - Nim 游戏+变种题 0. 前 ...

  2. 【数论】博弈论 —— nim游戏

    知识点 一 . nim游戏的数学定义 Nim游戏是博弈论中最经典的模型,它又有着十分简单的规则和无比优美的结论 . Nim游戏是组合游戏(Combinatorial Games)的一种,准确来说,属于 ...

  3. #194-[树链剖分,博弈论] Nim游戏

    Description 著名游戏设计师ljh,最近迷上了Nim.普通的Nim游戏为:两个人进行游戏,N堆石子,每回合可以取其中某一堆的任意多个,可以取完,但不可以不取.谁不能取谁输.这个游戏是有必胜策 ...

  4. 博弈论 Nim游戏与SG函数

    普通Nim游戏: 有若干堆石子,两人轮流从中取石子,取走最后一个石子的人为胜利者 我们判断先手必胜还是先手必败就要判断先手面对的局面是必胜态还是必败态 并且普通Nim游戏满足以下性质: 1.无法移动的 ...

  5. 博弈论——关于Nim游戏和SG函数的几个链接

    今天做了一道博弈论的题目,正好去找找相关资料再复习一下. 网上能找到的都是同样的文章,不过我觉得足够了,Nim游戏百度百科里说的很详细,包括公式.证明之类的 http://baike.baidu.co ...

  6. 博弈论(一):Nim游戏

    从今天开始,我将会用一系列文章介绍博弈论(Game Theory)的基本知识,以OI中可能用得着的为主.当然,我对博弈论的理解还很肤浅,而且我写东西的风格向来都是"个人心得"而非& ...

  7. 博弈论(Nim游戏、有向图游戏之SG函数)

    这里写目录标题 经典NIM游戏 Nim游戏属于公平组合游戏ICG 有向图游戏(SG函数) Mex运算 SG函数 单个有向图(一堆石子) 求SG值(记忆化递归) 有向图游戏的和 ,(多个有向图(多堆石子 ...

  8. 【acm 博弈论 】 之 Nim游戏与sg函数

    文章目录 前言 巴什博弈 威佐夫博弈 Nim游戏 Nim游戏与sg函数 题目 题意 样例 思路 代码 前言 从今天开始复习和整理下acm的部分模块,从博弈论开始. 著名的"取石子" ...

  9. 博弈论与SG函数(Nim游戏)

    博弈论与SG函数(Nim游戏) 目录 博弈论与SG函数(Nim游戏) 游戏状态 状态图(SG图) Nim 游戏 Nim 和 SG函数 Grundy数字 组合博弈游戏 Grundy 游戏 例题 在本篇, ...

最新文章

  1. 实战SSM_O2O商铺_47【Redis缓存】清除缓存接口的开发
  2. 沪深300股指期权和上证所深交所上市的两个沪深300ETF期权的区别
  3. C#结构体中数组的分配
  4. 封装的ExtGrid 实现增、删、改、查等功能
  5. 零基础学习java必须要了解的学习路线
  6. docker 分布式管理群集_Coolpy7分布式物联网MQTT集群搭建
  7. 野生前端的数据结构基础练习(6)——集合
  8. OBJECT_ID(Transact-Sql)
  9. 打造AS酷炫dimens适配插件
  10. nlu 意图识别_在NLU中,您无视危险的意图
  11. Java性能优化的五种方式,让你的Java程序更快、更稳定!
  12. ai怎么渐变颜色_AI的渐变工具为什么如此难用?
  13. html中版权号怎么打,网站底部版权符号怎么打出来
  14. 蒟蒻的笔记本二、tarjan
  15. Halcon 回形针方向计算
  16. MT6762/MT6765处理器参数比较/芯片资料介绍
  17. Mysql之子查询20221016
  18. 自动驾驶--定位技术
  19. 学术期刊划分(SCI、EI、SSCI、IEEE、CSSCI等)
  20. simulator相关

热门文章

  1. java 多线程4: java线程的优先级
  2. iOS-UICollectionView自定义布局
  3. 分享10款常用的jQuery焦点图插件
  4. 使用Python爬取mobi格式电纸书
  5. 从零开始带你部署springboot项目到ubuntu服务器05
  6. 剑指offer01--二叉树的最近公共祖先
  7. 如何在Linux系统上刷抖音
  8. Linux不讲武德——开机无法进入登录界面 卡在进度条就不动了
  9. ‘telnet‘ 不是内部或外部命令,也不是可运行的程序或批处理文件
  10. git提示(拷贝密钥问题)“Load key /home/devid/.ssh/id_rsa: bad permissions”