【模板】Nim博弈与SG函数
作者:互联网
一、Nim游戏
1、引子
Alice与Bob在玩一个取石子的游戏。 在这个游戏有N堆不同的石子,编号1..N,第i堆中有Ai个石子。 每一次行动,Alice和Bob可以选择从一堆石子中取出任意数量的石子。至少取1颗,至多取出这一堆剩下的所有石子。 Alice和Bob轮流行动,取走最后一个石子的人获得胜利。 假设每一轮游戏都是Alice先行动,请你判断在给定的情况下,如果双方都足够聪明,谁会获得胜利?
2、讨论
这是一个古老而又经典的博弈问题:Nim游戏。
Nim游戏是经典的公平组合游戏(ICG),对于ICG游戏我们有如下定义:
- 两名选手
- 两名选手轮流行动,每一次行动可以在有限合法操作集合中选择一个
- 游戏的任何一种可能的局面(position),合法操作集合只取决于这个局面本身,不取决于轮到哪名选手操作、以前的任何操作、骰子的点数或者其它因素;局面的改变称为“移动”(move)
- 如果轮到某名选手移动,且这个局面的合法的移动集合为空(也就是说此时无法进行移动),则这名选手负
对于第三条,我们有更进一步的定义Position,我们将Position分为两类:
- P-position:在当前的局面下,先手必败
- N-position:在当前的局面下,先手必胜
它们有如下性质:
- 合法操作集合为空的局面是P-position
- 可以移动到P-position的局面是N-position
- 所有移动都只能到N-position的局面是P-position
标签:局面,游戏,Nim,石子,Alice,position,SG,模板 来源: https://www.cnblogs.com/th-is/p/16572905.html