从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

否则先手必胜.

相关推荐
txzrxz4 分钟前
关于二维/多维前缀和
算法
来一碗刘肉面8 分钟前
顺序表的按值查找
数据结构·c++·算法
zzz_23681 小时前
【Java实习面试算法冲刺】图论
java·算法·面试
大鱼>1 小时前
宠物监控数据安全与隐私保护:端到端加密与合规实践
人工智能·深度学习·算法·iot·宠物
被自己蠢哭1 小时前
BFS广度优先搜索问题:#P00496. 华为od机试—自动泊车
算法
:-)1 小时前
分支限界算法
算法
小肝一下1 小时前
2. 顺序表和链表
c语言·数据结构·c++·链表·dijkstra·依蕾娜·香香的依蕾娜
大鱼>2 小时前
宠物行为识别AI算法详解:从数据采集到模型部署的完整方案
人工智能·深度学习·算法·宠物
王莎莎-MinerU2 小时前
解析回归集:RAG 和 Agent 上线前,先把表格、公式、版面测清楚
人工智能·算法·数据挖掘·回归·pdf·ocr
KaMeidebaby2 小时前
卡梅德生物技术快报|兔单克隆抗体:噬菌体 Fab 免疫文库搭建实操:兔单克隆抗体重组构建完整参数
前端·网络·数据库·人工智能·算法