一点对博弈论的理解

大家对博弈论最深的理解相比就是带有规律性的石子游戏

可这些是前辈们多年总结起来的

在面对一道博弈论的题目时怎么发现规律在没有规律时表示状态的博弈状态呢?

引入\(SG\)函数

\(N\)表示必胜状态,用非零自然数表示;\(P\)表示必败状态,用零表示

我们定义一下这两种状态的转移(定义之类的):

  • 所有的终止状态都为\(P\)状态
  • 对于任意的\(N\)状态,存在至少一条路径可以转移到\(P\)状态
  • 对于任意的\(P\)状态,只能转移到\(N\)状态

我们通常从最终状态向前推,则一个状态由多个状态转移而来,\(SG(v)=mex\{SG(u)\}\)
\((\)\(mex\{S\}\)表示S集合中未出现的最小自然数\()\)

通过简单例题理解\(SG\)函数

有\(n\)个石子,\(A\)\(B\)两人轮流取石子,每次至多只能取当前石子总数\(\lceil \dfrac{s}{2}\rceil\)个石子,问\(A\)先手是否有必胜策略

\(SG(0)=0\)
\(SG(1)=mex\{SG(1-1)\}=1\)
\(SG(2)=mex\{SG(2-1)\}=0\)
\(SG(3)=mex\{SG(3-1),SG(3-2)\}=2\)
\(SG(4)=mex\{SG(4-1),SG(4-2)\}=1\)
\(SG(5)=mex\{SG(5-1),SG(5-2),SG(5-3)\}=3\)

原文地址:https://www.cnblogs.com/y2823774827y/p/10727370.html

时间: 2024-12-09 15:59:14

一点对博弈论的理解的相关文章

SVM(支持向量机)的一点理解

最近有被问到SVM的问题,不懂装懂,羞愧不已.百度有很多深入浅出介绍SVM的文章,我就不赘述了,这里写一点自己肤浅的理解. SVM的核心思想是把求解低维空间上的高维分类器转化为求解高维函数空间上的线性分类器.为了达到这一目的,SVM引入了三大法宝. 第一是支持向量.支持向量相当于样本数据的典型代表(或者临界样本),分类器只依赖于支持向量,简化了其复杂度. 第二是核函数.SVM通过核函数把低维空间上的样本数据的关系转化为高维函数空间的内积关系.把数据从低维空间向高维函数映射,实际上增加了模型的复杂

Python - 04182016 - 类与实例间属性的理解

Python是个很灵活的语言,光看它的类和实例间属性的访问机制就可以看出这一点,不过这一点还真的不好理解,做了些测试之后我的理解是这样的: 实例在访问类属性时,先检索自己的names, 如果有的话就直接取出,没有的话就去来的names里面找,找不到就是error啦 class Pclass(object): """docstring for Pclass""" num = 10 def __init__(self): super(Pclass,

读完了csapp(中文名:深入理解计算机系统)

上个星期最终把csapp看完了. 我买的是中文版的,由于除了貌似评价不错以外,由于涉及到些自己不了解的底层东西,怕是看英文会云里雾里.如今看来,大概不能算是个长处,可是的确可以加快我的看书速度,否则一星期还真不大可能把这书搞定. 对csapp慕名已久,主要在于据说这本书尽量的做到相对实用,不去讲那些和实际编程没多大关系的计算机原理(毕竟是著名计算机院校里面最偏软件的cmu的作品),重点很得当,像我这样的没有本科科班出生又不想去死读些不知道以后有没实用的东西的人来说,最是适合了.感兴趣的东西就行再

对SVM的个人理解

对SVM的个人理解 之前以为SVM很强大很神秘,自己了解了之后发现原理并不难,不过,“大师的功力在于将idea使用数学定义它,使用物理描述它”,这一点在看SVM的数学部分的时候已经深刻的体会到了,最小二乘法.梯度下降法.拉格朗日乘子.对偶问题等等被搞的焦头烂额.在培乐园听了讲课之后才算比较清晰的了解了整个数学推导的来龙去脉. 1. 为什么一定要研究线性分类? 首先说一下为什么对数据集一定要说线性可分或线性不可分,难道不可以非线性分开吗?想要非线性分开当然可以,实际上SVM只是把原来线性不可分的数

对SVM的个人理解---浅显易懂

原文:http://blog.csdn.net/arthur503/article/details/19966891 之前以为SVM很强大很神秘,自己了解了之后发现原理并不难,不过,“大师的功力在于将idea使用数学定义它,使用物理描述它”,这一点在看SVM的数学部分的时候已经深刻的体会到了,最小二乘法.梯度下降法.拉格朗日乘子.对偶问题等等被搞的焦头烂额.在培乐园听了讲课之后才算比较清晰的了解了整个数学推导的来龙去脉. 1. 为什么一定要研究线性分类? 首先说一下为什么对数据集一定要说线性可分

java方法的多态性理解

1.什么是java的多态 浏览了别人博客中的一些介绍多态的文章,发现大家的描述有点不一样,主要区别在于是否把方法的重写算做多态.一种我比较认同的说法如下: 多态分为两种 a. 编译时多态:方法的重载: b. 运行时多态:JAVA运行时系统根据调用该方法的实例的类型来决定选择调用哪个方法则被称为运行时多态.(我们平时说得多的事运行时多态,所以多态主要也是指运行时多态): 上述描述认为重载也是多态的一种表现,不过多态主要指运行时多态. 2.运行时多态 a. 面向对象的三大特性:封装.继承.多态.从一

关于面对对对象之接口的通俗理解

一些人写代码,按照计算机思考的那个模式写,写出来的代码,能实现功能,但是拓展性不好,而有些人写代码,是按照人看世界的那些思路去写,写出来的代码 看起来像那么回事儿,而且也非常的符合逻辑,这是为什么?为什么同样是写代码,为什么写出来的东西会完全不一样了? 最近一直在反思自己写的代码,以前写,都是为了完成某项功能而写,写完了也就完事儿了,可是最近却不是这样了,最近想打问题是,写代码是不是只要在实现功能的层面上就可以了了?后来得出的答案是,代码其实还可以写的更加的灵活多变一点的 那么今天我们就来谈谈关

最小二乘法理解

--------------------- 作者:bitcarmanlee 来源:CSDN 原文:https://blog.csdn.net/bitcarmanlee/article/details/51589143 最小二乘是每个上过大学的同学都接触过的概念与知识点(当然可能纯文科的同学没接触过,但是一般纯文科的同学也不会看这篇文章好像).最小二乘理论其实很简单,用途也很广泛.但是每次说到最小二乘,总感觉差了点什么似的,好像对于最小二乘的前世今生没有一个特别详细与系统的了解.so,本博主趁着周

关于数理统计学及其与概率论之间联系的一些理解

作为一名非统计学科班出身的同学,之前只学习过浙大<概率论与数理统计>一书,当时只在意那些公式.理论,应付考试,甚至不知道书中讲述了两门学科的知识:数理统计学.概率论,更不明白二者之间有何关系,直到最近拜读了陈希孺先生的<数理统计学教程>,这才开始有一些理解,于是打算先将自己的一些理解记录下来,待日后理解加深之时,再回来修改. 什么是数理统计学       我们知道,数理统计学是要去研究数据的(当数据量达到一定程度,就又出现了大数据这样一个方向),那么它研究的数据有何不同呢?答案是数