有点散乱, 将就着看吧.

首先是博弈论的基础, 即 N 和 P 两种状态: N 为必胜状态, P 为必败状态.

对于N, P两种状态, 则有

1. 没有任何合法操作的状态, P;

2. 可以移动到P局面的情况为N状态;

3. 可以移动到的所有状态均为N状态, 则当前情况为P状态.

然后就可以引入SG函数了.

首先定义mex运算, 这是施加于一个集合的运算, 表示最小的不属于这个集合的非负整数。

for instance,

mex{0, 1, 2, 4} = 3、mex{2, 3, 5} = 0、mex{} = 0。

对于一个给定的有向无环图, 定义关于图的每个顶点的Sprague-Grundy函数g如下:g(x) = mex{ g(y) | y是x的后继}, 这里的g(x)即

sg[x]。

例如:取石子问题, 有1堆n个的石子, 每次只能取{1, 3, 4}个石子, 先取完石子者胜利, 那么各个数的SG值为多少?

sg[0] = 0, f[] = {1, 3, 4},

x = 1时, 可以取走1-f{1}个石子, 剩余{0}个, mex{sg[0]} = {0}, 故sg[1] = 1;

x = 2时, 可以取走2-f{1}个石子, 剩余{1}个, mex{sg[1]} = {1}, 故sg[2] = 0;

x = 3时, 可以取走3-f{1, 3}个石子, 剩余{2, 0}个, mex{sg[2], sg[0]} = {0, 0}, 故sg[3] = 1;

x = 4时, 可以取走4-f{1, 3, 4}个石子, 剩余{3, 1, 0}个, mex{sg[3], sg[1], sg[0]} = {1, 1, 0}, 故sg[4] = 2;

x = 5时, 可以取走5-f{1, 3, 4}个石子, 剩余{4, 2, 1}个, mex{sg[4], sg[2], sg[1]} = {2, 0, 1}, 故sg[5] = 3;

以此类推…..

x   0   1   2   3   4   5   6   7   8
sg 0 1 0 1 2 3 2 0 1

这里的sg函数与上面提到的N, P两种状态实际上是吻合的, 当 sg[i] == 0 时, 处于P状态; 否则处于N状态.

SG函数学习总结的更多相关文章

  1. SG函数学习

    尼姆博弈就是sg函数的简单体现 学习粗:https://blog.csdn.net/luomingjun12315/article/details/45555495 //f[N]:可改变当前状态的方式 ...

  2. SG 函数学习

    \(Mex\) 运算 \(mex(S)\) 为不属于集合 \(S\) 的最小非负整数,即: \[mex(S)=\min \limits_{x \in \mathbb{N},x \not\in S} \ ...

  3. 学习笔记--博弈组合-SG函数

    fye学姐的测试唯一的水题.... SG函数是一种游戏图每个节点的评估函数 具体定义为: mex(minimal excludant)是定义在整数集合上的操作.它的自变量是任意整数集合,函数值是不属于 ...

  4. HDU 1536 sg函数

    S-Nim Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  5. hdu-------(1848)Fibonacci again and again(sg函数版的尼姆博弈)

    Fibonacci again and again Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Jav ...

  6. 【转】博弈问题及SG函数(真的很经典)

    博弈问题若你想仔细学习博弈论,我强烈推荐加利福尼亚大学的Thomas S. Ferguson教授精心撰写并免费提供的这份教材,它使我受益太多.(如果你的英文水平不足以阅读它,我只能说,恐怕你还没到需要 ...

  7. (转)博弈问题与SG函数

    博弈问题若你想仔细学习博弈论,我强烈推荐加利福尼亚大学的Thomas S. Ferguson教授精心撰写并免费提供的这份教材,它使我受益太多.(如果你的英文水平不足以阅读它,我只能说,恐怕你还没到需要 ...

  8. 博弈论进阶之SG函数

    SG函数 个人理解:SG函数是人们在研究博弈论的道路上迈出的重要一步,它把许多杂乱无章的博弈游戏通过某种规则结合在了一起,使得一类普遍的博弈问题得到了解决. 从SG函数开始,我们不再是单纯的同过找规律 ...

  9. 博弈论初步(SG函数)

    讲解见此博客https://blog.csdn.net/strangedbly/article/details/51137432 理解Nim博弈,基于Nim博弈理解SG函数的含义和作用. 学习求解SG ...

随机推荐

  1. POJ:1904-King's Quest

    King's Quest Time limit15000 ms Case time limit2000 ms Memory limit65536 kB Description Once upon a ...

  2. CodeForces 14D 树的直径 Two Paths

    给出一棵树,找出两条不相交即没有公共点的路径,使得两个路径的长度的乘积最大. 思路:枚举树中的边,将该边去掉,分成两棵树,分别求出这两棵树的直径,乘起来维护一个最大值即可. #include < ...

  3. 【Jenskins】安装与配置

    Jenskins教程:http://www.yiibai.com/jenkins/ 一.Jenskins的安装 1.jenskins下载和启动 Jenskins下载地址:https://jenkins ...

  4. luogu2293 [JSOI2008]Blue Mary开公司

    ref好像叫什么李超线段树?--这篇不是太通用-- #include <iostream> #include <cstdio> #include <cmath> u ...

  5. 添加rpmforge源 centos 7

    (原创)RHEL/CentOS 7.x使用EPEL第三方yum源 时间 2014-07-22 19:45:50 服务器运维与网站架构 原文  http://www.ha97.com/5649.html ...

  6. Baum-Welch算法(EM算法)对HMM模型的训练

    Baum-Welch算法就是EM算法,所以首先给出EM算法的Q函数 \[\sum_zP(Z|Y,\theta')\log P(Y,Z|\theta)\] 换成HMM里面的记号便于理解 \[Q(\lam ...

  7. 九度oj 题目1482:玛雅人的密码 清华大学机试

    题目描述: 玛雅人有一种密码,如果字符串中出现连续的2012四个数字就能解开密码.给一个长度为N的字符串,(2=<N<=13)该字符串中只含有0,1,2三种数字,问这个字符串要移位几次才能 ...

  8. iOS学习笔记39-ReactiveCocoa入门

    FRP,全称为Functional Reactive Programming,是一种响应变化的编程范式,最近几年比较火,大概的理解就像这样: 当a的值或者b的值发生变化时,c的值会自动响应a的值或b的 ...

  9. HDU——1420Prepared for New Acmer(快速幂取模)

    Prepared for New Acmer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/O ...

  10. BZOJ4916 神犇和蒟蒻 【欧拉函数 + 杜教筛】

    题目 很久很久以前,有一只神犇叫yzy; 很久很久之后,有一只蒟蒻叫lty; 输入格式 请你读入一个整数N;1<=N<=1E9,A.B模1E9+7; 输出格式 请你输出一个整数A=\sum ...