sg,是用来判断博弈问题的输赢的,当sg值为0的时候,就是输,不为0就是赢;

在这之前,我们规定一个对于集合的操作mex,表示最小的不属于该集合的非负整数。 举几个栗子:mex{0,1,2}=3,mex{1,2,3}=0,mex{0,1,3}=2;

而我们要求的sg的值就和这个有关,定义SG函数:SG(x)=mex{ SG(y) | y是x的后继,也就是经过操作可以取得的剩下值 }。

举个栗子:比如一堆石子,我们可以取任意个,那么x个石子的石子的sg值是多少呢?

可以知道,0个石子sg为0,一的时候我们可以取一个,剩下0,的sg是0,那么mex(0)就是1,所以1的sg为1。

递推下去当为x的时候我们可以取1~x个,那么剩下的值石子个数就是x-1到0个,他的mex(...)就是x,所以这个例子的x值得sg值就是x;

那么,sg可以为我们做什么呢?比如Nimm问题,多堆的时候,我们只需要将每个sg值亦或一下,如果是0就会输,不是就赢,也就是将每堆的数量亦或就可以了

最新文章

  1. C# Iterator迭代器的实现方式
  2. c语言语系的命名风格和java系命名风格
  3. ThikPHP3.1 常用方法(one)
  4. Stanford机器学习---第六讲. 怎样选择机器学习方法、系统
  5. ACM第四站————最小生成树(克鲁斯卡尔算法)
  6. applet授权数字签名
  7. SQL Mon 介绍
  8. java运行时数据区域
  9. PHPCMS v9 列表页实现文件下砸
  10. JavaScript 基础学习1-day14
  11. nginx学习笔记(三)
  12. Json常用组件
  13. 嵌入式小系统I2S接口调试总结
  14. windows系统安装完后要做的事情
  15. Javascript合并表格相同内容单元格示例
  16. POJ 2387 Til the Cows Come Home 【最短路SPFA】
  17. WOSA/XFS PTR Form解析库—xfsptrdata.h
  18. HDFS 命令深入浅出
  19. 一.shell基础知识
  20. ORM--------Hibernate、Mybatis与Spring Data的区别

热门文章

  1. 【FFmpeg】ffplay播放rtsp视频流花屏问题 (转)
  2. 职场之KPI
  3. Go 语言环境搭建
  4. ASP.NET Core入门系列教程
  5. 《Unix&Linux大学教程》学习笔记6——Unix文件系统
  6. JVM的7种垃圾收集器:主要特点 应用场景 设置参数 基本运行原理
  7. 【Windows】创建任务计划
  8. qeephp 记录下
  9. 第一部分:开发前的准备-第三章 Application 基本原理
  10. vue项目eslint环境配置与vscode配置eslint