简介:

ICG游戏:Impartial Combinatorial Games,公平的组合游戏。

以下是定义,来自网络,可能不够严谨:

1、两名选手;
2、两名选手轮流行动,每一次行动可以在有限合法操作集合中选择一个;
3、游戏的任何一种可能的局面(position),合法操作集合只取决于这个局面本身;局面的改变称为“移动”(move)。
4、若轮到某位选手时,该选手的合法操作集合为空,则这名选手判负。

必胜和必败,指如果若按规定且可行的方法走,则必定胜利;必败,指无论怎么走必定失败。某些资料称为奇异非奇异态,PN态,等差不多。

来源:

写这篇文章,主要是源于巧克力游戏的证明(Strategy-stealing):

有个n*m的矩阵(巧克力块),两人轮流取一个点;每次取完后,需要把其右上方所有巧克力都吃了;吃到最左下方的输。先手是否必胜?

有证明如下:

如果后手存在必胜,则只要先手第一次取最右上方的,后手取的必包含最右上方的,那先手其实第一次就可以取后手取的那个。

即后手第二步走的,先手都可以在第一步就走。由此证明后手不存在必胜,先手必胜。

补充证明:

刚看到证明,觉得只是证明了后手不存在必胜,并不能说明先手必胜。

如果加上一个条件即可:在ICG游戏中,先手不是必胜就是必败,后手同理。

证明:

双方互相决策,有限步骤,可以用树来描述,树的叶子节点是胜或者败;

由于双方都是足够聪明,所以,如果某个叶子是胜,则其父节点也是胜,因为父节点必定会选择胜利的途径;如果某子树叶子全是败,则其父节点也是败;

一直往上递推,则最后,推到根节点有若干个叶子,如果有胜节点则根节点胜;如果全是败则根节点败;

则证明,先手不是必胜就是必败。

梳理:

回到刚才的反证法,梳理下:

后手有必胜=>先手必败=>推出矛盾。则先手不是必败,又由上面证明得知先手不是必胜就是必败,所以先手必胜。

扩展:

对于这种多走一步一定不是坏事,且决策对策的游戏(可能是非ICG),都可以用类似的方法证明后手没有必胜策略。但这不代表先手有。

ICG游戏:证明,先手不是必胜就是必败。的更多相关文章

  1. ICG游戏:尼姆游戏异或解法的证明

    描述: 尼姆博奕(Nimm Game),有n堆石子,每堆石子有若干石子,两个人轮流从某一堆取任意多的物品,规定每次至少取一个,多者不限.取走最后石子的人获胜. 标准解法: 判断: 先计算先手是必胜还是 ...

  2. ICG游戏:斐波那契博弈

    描述: 有一堆个数为n(n>=2)的石子,游戏双方轮流取石子,规则如下: 1)先手不能在第一次把所有的石子取完,至少取1颗: 2)之后每次可以取的石子数至少为1,至多为对手刚取的石子数的2倍: ...

  3. {HDU}{2516}{取石子游戏}{斐波那契博弈}

    题意:给定一堆石子,每个人最多取前一个人取石子数的2被,最少取一个,最后取石子的为赢家,求赢家. 思路:斐波那契博弈,这个题的证明过程太精彩了! 一个重要的定理:任何正整数都可以表示为若干个不连续的斐 ...

  4. Nim游戏变种——取纽扣游戏

    (2017腾讯实习生校招笔试题)Calvin和David正在玩取纽扣游戏,桌上一共有16个纽扣,两人轮流来取纽扣,每人每次可以选择取1个或3个或6个(不允许不取),谁取完最后的纽扣谁赢.Cavin和D ...

  5. Nim游戏变种——取纽扣谁先取完

    (2017腾讯实习生校招笔试题)Calvin和David正在玩取纽扣游戏,桌上一共有16个纽扣,两人轮流来取纽扣,每人每次可以选择取1个或3个或6个(不允许不取),谁取完最后的纽扣谁赢.Cavin和D ...

  6. Codeforces 455B A Lot of Games:博弈dp【多局游戏】

    题目链接:http://codeforces.com/problemset/problem/455/B 题意: 给你n个字符串,然后进行k局游戏. 每局游戏开始有一个空串,然后双方轮流给这个串的末尾添 ...

  7. Ferguson游戏&&Ua12293——打表找规律

    题意 有两个盒子分别有m颗糖果和n颗糖果,每次移动是将一个盒子清空而把另一个盒子里得一些糖果拿到被清空的盒子,使得两个盒子至少各有一个.无法移动者输. 分析 设初始状态为(m, n),显然(1, 1) ...

  8. 【BZOJ】【3404】【USACO2009 Open】Cow Digit Game又见数字游戏

    博弈论 Orz ZYF 从前往后递推……反正最大才10^6,完全可以暴力预处理每个数的状态是必胜还是必败(反正才两个后继状态),然后O(1)查询……我是SB /******************** ...

  9. sg函数与博弈论

    这个标题是不是看起来很厉害呢... 我们首先来看一个最简单的游戏.比如我现在有一堆石子,有p个,每次可以取走若干个(不能不取),不能取的人就输了. 现在假设有两个人要玩这个游戏,一个人先手,一个人后手 ...

随机推荐

  1. git 错误 fatal: loose object...is corrupt

    错误描述: error: object file .git/objects/9a/83e9c5b3d697d12a2e315e1777ceaf27ea1bab is empty fatal: loos ...

  2. Python 高性能并行计算之 mpi4py

    MPI  和    MPI4PY   的搭建上一篇文章已经介绍,这里面介绍一些基本用法. mpi4py  的  helloworld from mpi4py import MPI print(&quo ...

  3. cousera 吴恩达 深度学习 第一课 第二周 作业 过拟合的表现

    上图是课上的编程作业运行10000次迭代后,输出每一百次迭代 训练准确度和测试准确度的走势图,可以看到在600代左右测试准确度为最大的,74%左右, 然后掉到70%左右,再掉到68%左右,然后升到70 ...

  4. BZOJ5090: [Lydsy1711月赛]组题(01分数规划)

    5090: [Lydsy1711月赛]组题 Time Limit: 1 Sec  Memory Limit: 256 MBSubmit: 785  Solved: 186[Submit][Status ...

  5. ringojs java jar 集成使用

    ringojs 可以方便进行java 代码的集成,我们可以把下载的jar包放到classpath,后者ringojs 的lib 目录 也可以进行代码编写 测试代码 集成了java 的一个hashid ...

  6. c#:Json字符串转成xml对象

    没看到.net framework中有这样的功能, 懒得到处找了, 索性花点时间自己写一个 /* * Created by SharpDevelop. * Date: 2013/6/24 * User ...

  7. phpstorm搜索匹配正则表达式

    data-position=".................................................................." 点是匹配任意一 ...

  8. centos 7 安装rabbitmq 3.6.12

    0 安装 epel yum -y install http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11. ...

  9. xmlns和xsi之schemaLocation

    appplicationContex.xml文件报错:元素 "util:constant" 的前缀 "util" 未绑定 在根节点添加了“xmlns:util= ...

  10. 使用ffmpeg步骤(转)

    av_register_all();//初始化ffmpeg库,如果系统里面的ffmpeg没配置好这里会出错  if (isNetwork) {      //需要播放网络视频      avforma ...