从Nim游戏到SG函数

从Nim游戏到SG函数

Nim游戏

公平组合问题在蓝桥杯等算法竞赛中经常出现,最经典的例子莫过于Nim游戏

Nim游戏:两个玩家面前有若干堆石子,每个玩家每次可在每堆石子中取走任意多个石子,取走最后一枚石子的玩家获胜。

其结论为如果所有堆的石子个数的异或值为0,那么代表这个状态是先手必负,否则说明该状态为先手必胜状态。

SG函数

由SG定理可知,所有的公平组合问题都等价于若干单堆Nim游戏的和(要求是类似取走最后一个石子的人获胜)

例子

Bash博弈

一堆石子,每次只能取1~k个,取到最后一个石子的人获胜。

首先SG(0)=0为先手必负状态

SG(1)=1

SG(2)=2

SG(3)=3

...

SG(k)=k

SG(k+1)=0

因此Bash博弈的先手必负条件等价于n%(k+1)=0

否则先手必胜.

相关推荐
叠层归一研究院44 分钟前
基于极限自指的叠层归一宇宙结构理论——无元外部封闭系统的内生区分模型
人工智能·经验分享·算法·agi
Selvaggia2 小时前
Diffusion Model 的基本原理与模型架构
算法
汉克老师3 小时前
CSP-J 2026 初赛试题解析(第一部分:选择题(8-15))精讲
c++·csp-j·小学生·学c++编程
wabs6663 小时前
关于二叉树【力扣572.另一棵树的子树的思考】
数据结构·c++·算法·leetcode·二叉树
hanlin033 小时前
刷题笔记:力扣第41题-缺失的第一个正数
笔记·算法·leetcode
shehuiyuelaiyuehao4 小时前
算法50,分治归并,数组中的逆序对
java·算法
风合星语4 小时前
2026 ROS 2 Lyrical C++ 入门(五):Action 实战——任务反馈、取消与超时处理
c++·机器人·ros2·异步编程·lyrical
阳明山水4 小时前
校准分位数驱动智能库存决策
人工智能·深度学习·算法·机器学习·架构
91刘仁德5 小时前
C++ 继承和多态 设计模式
c语言·c++·笔记
库玛西5 小时前
哈夫曼树与前缀编码:数据压缩的贪心核心
c语言·c++·笔记·考研