参考:http://tieba.baidu.com/p/613078798?pn=1

有若干堆石头,A,B分布依次取,一次只能选择一堆,从这堆中选择大于0的石头,问:1,如果最后取光石头的人获胜,A在什么情况下获胜?2,如果最后取光石头的人失败,A在什么情况下获胜?

1. 在规则1下,先手获胜的情况,在规则2下先手同样获胜

2. 规则1和规则2的取法不一样。

设当石头出现(1,1,1,...,X),x>1的情况下,称进入小卡区域。

规则1:

先手面临的局面必须是XOR(M1,M2,..,M3)!=0才能保证,先手获胜;此时,先手必须调整堆,使得XOR(M1,M2,..,M3)=0;这样就能保证先手最后获胜。

规则2:

先手面临的局面必须是XOR(M1,M2,..,M3)!=0才能保证,先手获胜;此时,先手必须调整堆,使得XOR(M1,M2,..,M3)=0;这样就能保证先手最后获胜。

大家可以看出规则1和规则2的策略是一样的,但是在规则2下,还要增加一个策略:当局面进入小卡区域时,当有偶数个1时,先手取x-1个石头;当有奇数个1时,先手取x个石头

但是有一个问题,如何保证当局面进入小卡区域时,正好该先手取?

编程之美 1.12 nim(2)相关推荐

  1. 编程之美中的NIM游戏及异或性质应用

    最近看<编程之美>一书,感叹思维之妙,不过看过之后又在很多数学方面的书里面找到了同样的解法例如<组合数学>.<图论导引>等,之后才知道其实很多书上的算法都是源自数学 ...

  2. 编程之美 set 12 快速找出故障机器

    题目 1. 所有的 ID 都出现 2 次, 只有一个例外, 找到那个例外的 ID 2. 所有的 ID 都出现两次, 只有两个例外, 找出例外的那两个 总计 1. 剑指 offer 上有这两道题的解法, ...

  3. 精选的一些《编程之美》相关资料

    又要到一年的招聘季了,肯定又有很多人开始啃<编程之美>了吧.这本书从开阔视野的角度来说很好,不过限于篇幅,有的问题并没有讲清楚(甚至问题叙述模棱两可.被标榜为"鼓励同面试官交流以 ...

  4. 从《编程之美》买票找零问题说起,娓娓道来卡特兰数——兼爬坑指南

    转自:从<编程之美>买票找零问题说起,娓娓道来卡特兰数--兼爬坑指南 引子: 大约两个月前,我在练习一些招聘的笔试题中,有一道和卡特兰数相关.那时还没来得及开始仔细看<编程之美> ...

  5. 《编程之美》相关参考资料

    转载自:https://blog.csdn.net/wuyuegb2312/article/details/9896831 为了便于查阅,也为了方便后人不必在搜索上浪费时间,我把比较有价值的文章的链接 ...

  6. 编程之美计算0到N中包含数字1的个数

    转自:http://blog.csdn.net/hongjuntu123/article/details/8743266 有这样一个函数f(n),对于任意正整数n,它表示从 0 到 n 之间出现&qu ...

  7. 《编程之美》第2刷勘误

    <编程之美>第2刷勘误 1.   第 80 页,第2行 原文: a – b = 1 改为: b – a = 1   2.   第133页,第1行 原文:f(10n-1)=n*10n-1 改 ...

  8. python面向对象编程指南([美stevenflott_Python面向对象编程指南 ([美]StevenFLott洛特) 中文_IT教程网...

    资源截图:Python面向对象编程指南 ([美]StevenFLott洛特) 中文 第1部分 用特殊方法实现Python风格的类 . 1 第1章 __init__()方法 5 第2章 与Python无 ...

  9. 《编程之美》 查找最大(小)的k个元素

    http://blog.csdn.net/v_july_v/article/details/6370650 http://blog.csdn.net/insistgogo/article/detail ...

最新文章

  1. java web 怎么用solr_使用web过滤器增加solr后台登录验证
  2. django 动态更新属性值
  3. 在vue中获取微信支付code及code被占用问题的解决?
  4. bash-shell高级编程--条件判断
  5. linux 读写时间变长,linux时钟变慢的原因分析【转】
  6. WebRTC十周年、Space X成功对接国际空间站、TikTok复制品Zynn或有快手支持|Decode the Week...
  7. Redhat 5.1 install PHP 5.3.6
  8. golang mysql 插入_Mysql学习(一)添加一个新的用户并用golang操作Mysql
  9. [Array]Majority Element
  10. 关于CMS垃圾回收器的几个问题
  11. (10)<label>标签的用途
  12. php中未定义的变量使用技巧
  13. Linux从初学到精通
  14. BZOJ1012: [JSOI2008]最大数maxnumber [线段树 | 单调栈+二分]
  15. Flash助手推荐广告删除方法
  16. 博图15怎么看各种功能块说明_西门子STEP7常用功能块说明
  17. 联想机房升级Win10联想硬盘保护系统EDU8.0安装手记
  18. 微信小程序开发笔记——开发者工具介绍
  19. 计算机在条形码的应用,条码应用
  20. Struts1与Struts2原理以及区别

热门文章

  1. 毕业了,在Python中使用 OpenCV 和K-Means 聚类对毕业照进行图像分割
  2. 【机器学习算法专题(蓄力计划)】十九、机器学习中SVM算法代码实操
  3. 通过flask构建自己的代理池
  4. 博士申请 | 阿联酋阿布扎比人工智能大学许志强老师招收全奖博士/硕士
  5. 直播 | AMP:针对模型参数施加对抗扰动的高效神经网络正则化算法
  6. 3D Human相关研究总结:人体、姿态估计、人体重建等
  7. 变分推断(Variational Inference)最新进展简述
  8. 简明条件随机场CRF介绍 | 附带纯Keras实现
  9. 【归并排序】-求逆序数算法
  10. MsSQL学习第五章---排序和分页