简介:

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

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

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

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

来源:

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

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

有证明如下:

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

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

补充证明:

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

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

证明:

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

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

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

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

梳理:

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

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

扩展:

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

转载于:https://www.cnblogs.com/willaty/p/8151533.html

ICG游戏:证明,先手不是必胜就是必败。相关推荐

  1. nim游戏(判断必胜还是必败,必胜该怎么取)

    对于n堆石子,某个人没有石子可取为输,接下来的必胜态和必败态是对于第一个人来说的. 首先是必胜态和必败态,如果不管第一个怎么取都不能胜,那么为必败态,否则为必胜态. 如果对于n堆石子数取异或值为0,则 ...

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

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

  3. 算法中的一些数学问题分享,ICG游戏

    1,石子游戏 题目出处 https://leetcode-cn.com/problems/stone-game/ 亚历克斯和李用几堆石子在做游戏.偶数堆石子排成一行,每堆都有正整数颗石子 piles[ ...

  4. 【HDU - 5963】朋友(博弈,思维,必胜态必败态,找规律)

    题干: B君在围观一群男生和一群女生玩游戏,具体来说游戏是这样的: 给出一棵n个节点的树,这棵树的每条边有一个权值,这个权值只可能是0或1. 在一局游戏开始时,会确定一个节点作为根.接下来从女生开始, ...

  5. 牛客多校-Z-Game on grid-(博弈论+必胜态必败态转移)

    M 题意: 就是给你一个n×m的棋盘,每个点要么是A,要么是B,要么是 . .然后机器人刚开始在(1,1)点,Alice先控制机器人走一步,Bob控制机器人走一步.每次只能往右或者下走,不能超过棋盘. ...

  6. Java程序验证五子棋先手必胜_五子棋被证明先手必胜之后,还有哪些丧心病狂的“套路”?...

    原始规则的五子棋早就被证明是先手必胜了,当然,"先行必胜"说起来简单,实际上普通选手想要达到先行必胜的条件,不进需要熟练掌握类似花月.蒲月的谱,还需要长久时间的练习,很多人以为学会 ...

  7. HDU1847Good Luck in CET-4 Everybody!递推求解必胜、必败点 附三种经典博弈

    Problem Description 大学英语四级考试就要来临了,你是不是在紧张的复习?也许紧张得连短学期的ACM都没工夫练习了,反正我知道的Kiki和Cici都是如此.当然,作为在考场浸润了十几载 ...

  8. SG函数求解 NIM游戏先手必胜必败问题

    NIM游戏: 两人玩家,给定状态之间转移规则,每个人轮流移动,最终得出胜负. 设P为必败点,N为必胜点 精髓: 能到达必败点的所有点都为必胜点,一般解题都是先找到一个必败点,然后由此点推必胜点 有的题 ...

  9. 找出游戏的必胜的策略(博弈论的学习)

    题目:硬币游戏1,Alice和Bob在玩这样一个游戏.给定k个数字a1,a2,···ak. 一开始,有x枚硬币,Alice和Bob轮流取硬币.每次所取硬币的枚数 一定要在a1,a2···,ak当中.A ...

最新文章

  1. Java删除文件及其子文件、文件夹
  2. Matlab sumsqr函数
  3. 前端学习(504):垂直居中的第一种方式
  4. 财务造假10年!贾跃亭被罚2.41亿
  5. 小米冲击高端,这次能否成功?
  6. Java多线程知识点整理(Lock锁)
  7. 再谈指标体系建设的3点建议
  8. 深度访谈: 怎样玩转天猫?看这九本书就够了
  9. cadence logic 库说明
  10. Java实现 蓝桥杯 算法训练 Beaver's Calculator
  11. 【web-ctf】ctf_BUUCTF_web(2)
  12. TEM TE TM模的区别和电磁波模式
  13. import express from 'express'; ^^^^^^^ SyntaxError: Unexpected identifier at Module._com
  14. js class super 的用法
  15. jQuery之datetimepicker控件(时间单位精确到分钟)
  16. 国内最全的android软件商店 应用市场 汇总
  17. 港中文等提出Seesaw Loss:一种面向长尾目标检测的平衡损失函数
  18. Python+scrcpy+pyminitouch实现自动化(四)——实现语音识别自动打卡机器人
  19. pyhton微博爬虫(3)——获取微博评论数据
  20. 数据分析,这样满足运营的需求

热门文章

  1. 弹性地基梁板法计算原理_建筑混凝土结构设计和计算方法,老师傅总结:其原理就是这么简单...
  2. vue 同时执行两个函数 点击_【第2112期】 import { reactive } from #39;vue#39;
  3. etcdctl命令查询etcd信息
  4. n9009 Android5.0内核,三星N9009(Galaxy Note 3 电信版 Android 5.0)刷Recovery教程
  5. winform响应时间最长是多少分钟_了解这个,你的爬升勋章分分钟手到擒来!
  6. 三台机器搭建MySQL一主二从
  7. 【研发管理】华为十大架构与设计核心原则
  8. 【吉林】2021年下半年软考报考时间及通知
  9. 《系统集成项目管理工程师》必背100个知识点-76配置审计
  10. 了解零信任-SDP关系