Chomp 游戏与偏序关系

2024-01-12 20:48
文章标签 关系 游戏 chomp 偏序

本文主要是介绍Chomp 游戏与偏序关系,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Chomp 游戏与偏序关系

一、游戏介绍

Chomp是一个双人游戏,有 m X n 块曲奇饼排成一个矩形格状,称作棋盘。两个玩家轮流自选吃掉一块还剩下的曲奇饼,而且要把它右边和下面所有的曲奇饼都被取走(如果存在)。如果不吃左上角的那一块曲奇饼(位置记为(1, 1))就没有其他选择的玩家为失败。

下图展示了一个棋盘为 4 X 6 的Chomp游戏的完整过程:

  • (a)是初始情况;
  • (b)表示玩家一吃掉位置为(3, 3)的曲奇饼;
  • (c)表示玩家二吃掉位置为(1, 4)的曲奇饼;
  • (d)表示玩家一吃掉位置为(1, 2)的曲奇饼;
  • (e)表示玩家二吃掉位置为(2, 1)的曲奇饼;
  • (f)表示玩家一在游戏中落败。

 


分析这个游戏的“策略”之前先“插播”一个重要结果——

 

策梅洛定理(Zermelo's theorem)

1913年,恩斯特·策梅洛(Ernst Zermelo)在论文《Über eine Anwendung der Mengenlehre auf die Theorie des Schachspiels》中证明了策梅洛定理(Zermelo's theorem),定理表明在二人参与的游戏中,如果满足

  • 游戏步骤有限;
  • 信息完备(可以理解为参与者知道所有与游戏相关的信息以及本次游戏中已发生所有步骤和结果);
  • 不会产生平局;
  • 确定性的(即运气因素并不牵涉在游戏中),

则或者先行一方有必胜策略,或者后行一方有必胜策略。

 

策梅洛定理的另一种表述是:在二人参与的游戏中,如果满足游戏步骤有限、信息完备、每一步骤都是确定性,则或者先行一方有必胜策略,或者先行一方有必和策略,或者后行一方有必胜策略。


下面证明:除去 1 X 1 大小的棋盘外,其他大小的棋盘,先手存在必胜策略。

证明

假设棋盘规模为 m X n 。

首先,游戏不可能产生平局

其次,由于每一步移动至少吃掉1块曲奇饼干,因此不超过 mn 步后游戏必定结束

由策梅洛定理,这个确定性二人有限游戏信息完备,且不存在平局,则或者先行一方有必胜策略,或者后行一方有必胜策略。

如果后手有必胜策略,使得无论先手第一次取哪个石子,后手都能获得最后的胜利。

那么现在假设先手取最右下角的石子 (m, n) ,接下来后手可以取某块曲奇 (a, b) 使得自己进入必胜的局面。

事实上,先手在第一次取的时候就可以取曲奇  (a, b) ,之后完全模仿后手的必胜步骤,迫使后手失败。

于是产生矛盾。因此不存在后手必胜策略,先手存在必胜策略。

 

注意:这个证明是非构造性存在性证明,也即只是证明了先手必胜策略的存在性,但没有构造出具体必胜策略。

虽然对于一些特殊的情况,比如棋盘是正方形、棋盘只有两行,可以找到必胜策略;但一般情况,还没有人能具体给出Chomp的一般性必胜策略。


(Ⅰ) 棋盘只有一行,但是多于一格。先手只要只剩下左上角的一块即可。

(Ⅱ) 棋盘是正方形,但是多于一格。先手只要只剩下左上角的一块、最上一行、最左一列即可。

之后,无论后手怎么做,先手只要对称地模仿就可以。

(Ⅲ) 棋盘只有两行,就先拿去右下角的一块。

之后 根据后手的选择,主要有三种可能,总体来说就是保持上行比下行曲奇饼多一,或者干脆对方取走下面一行全部曲奇饼。(其实下图中后两种可以合并)


 

Chomp游戏的变形:

(a) 三维Chomp游戏。将曲奇排成 p x q x r 的立方体,两个玩家轮流自选吃掉一块剩下的曲奇饼,若取走的曲奇饼为 (i, j, k),则也要取走所有满足 p \geqslant a \geqslant  i ,  q \geqslant b \geqslant  j,  r  \geqslant c \geqslant  k的曲奇饼(如果存在)。

可以类似地将Chomp游戏扩展到任意维,并可以类似地证明,先手都存在必胜策略

(b) 约数游戏。给定一个大于1的自然数 N,两个游戏参与者轮流选择 的大于1的正约数,但不可选择之前被选择过的因子的倍数(例如 N = 72,有一方之前选择了4,则之后任一方都不可以再选择36)。

(c) 删数游戏:给定整数集合 {1,2,3,..., n },两个人轮流从中选择一个数字,并将它和它的约数从集合中删除,删除最后一个数的人获胜。

类似Chomp游戏,得到结论就是无论 n 是几,都是先手必胜。

(d) 有限偏序集上的Chomp游戏。

Chomp游戏可以推广到在任意一个存在最小元 a 的有限偏序集 (S, \leqslant )上:两名游戏者轮流选择S中的元素 x,移走 x 以及所有 S 中比 x 大的元素。失败者是被迫选择最小元 a ​​​​​​​的玩家。

如果 (S, \leqslant ) 有最大元素 b ,那么在偏序集上的 Chomp 游戏存在一个获胜策略。

而且

  1. 传统Chomp游戏与偏序集 (S, | ) 上的Chomp游戏相同,其中 S 是 p^{m-1}q^{n-1} 的所有正因子组成的集合,这里 p 和 q 是两个不同的素数。
  2. 假设 (A, \leqslant ) 和 (B , \leqslant ) 都是全序集,证明:传统Chomp游戏与积偏序集 (A x B, \leqslant ) 上的Chomp游戏相同。

这篇关于Chomp 游戏与偏序关系的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/599122

相关文章

Python开发围棋游戏的实例代码(实现全部功能)

《Python开发围棋游戏的实例代码(实现全部功能)》围棋是一种古老而复杂的策略棋类游戏,起源于中国,已有超过2500年的历史,本文介绍了如何用Python开发一个简单的围棋游戏,实例代码涵盖了游戏的... 目录1. 围棋游戏概述1.1 游戏规则1.2 游戏设计思路2. 环境准备3. 创建棋盘3.1 棋盘类

POJ1269 判断2条直线的位置关系

题目大意:给两个点能够确定一条直线,题目给出两条直线(由4个点确定),要求判断出这两条直线的关系:平行,同线,相交。如果相交还要求出交点坐标。 解题思路: 先判断两条直线p1p2, q1q2是否共线, 如果不是,再判断 直线 是否平行, 如果还不是, 则两直线相交。  判断共线:  p1p2q1 共线 且 p1p2q2 共线 ,共线用叉乘为 0  来判断,  判断 平行:  p1p

国产游戏崛起:技术革新与文化自信的双重推动

近年来,国产游戏行业发展迅猛,技术水平和作品质量均得到了显著提升。特别是以《黑神话:悟空》为代表的一系列优秀作品,成功打破了过去中国游戏市场以手游和网游为主的局限,向全球玩家展示了中国在单机游戏领域的实力与潜力。随着中国开发者在画面渲染、物理引擎、AI 技术和服务器架构等方面取得了显著进展,国产游戏正逐步赢得国际市场的认可。然而,面对全球游戏行业的激烈竞争,国产游戏技术依然面临诸多挑战,未来的

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

火柴游戏java版

代码 /*** 火柴游戏* <p>* <li>有24根火柴</li>* <li>组成 A + B = C 等式</li>* <li>总共有多少种适合方式?</li>* <br>* <h>分析:</h>* <li>除去"+"、"="四根,最多可用火柴根数20根。</li>* <li>全部用两根组合成"1",最大数值为1111。使用枚举法,A和B范围在0~1111,C为A+B。判断</li>** @

国产游戏行业的崛起与挑战:技术创新引领未来

国产游戏行业的崛起与挑战:技术创新引领未来 近年来,国产游戏行业蓬勃发展,技术水平不断提升,许多优秀作品在国际市场上崭露头角。从画面渲染到物理引擎,从AI技术到服务器架构,国产游戏已实现质的飞跃。然而,面对全球游戏市场的激烈竞争,国产游戏技术仍然面临诸多挑战。本文将探讨这些挑战,并展望未来的机遇,深入分析IT技术的创新将如何推动行业发展。 国产游戏技术现状 国产游戏在画面渲染、物理引擎、AI

第四次北漂----挣个独立游戏的素材钱

第四次北漂,在智联招聘上,有个小公司主动和我联系。面试了下,决定入职了,osg/osgearth的。月薪两万一。 大跌眼镜的是,我入职后,第一天的工作内容就是接手他的工作,三天后他就离职了。 我之所以考虑入职,是因为 1,该公司有恒歌科技的freex平台源码,可以学学,对以前不懂的解解惑。 2,挣点素材钱,看看张亮002的视频,他用了6000多,在虚幻商城买的吸血鬼游戏相关的素材,可以玩两年。我

读软件设计的要素04概念的关系

1. 概念的关系 1.1. 概念是独立的,彼此间无须相互依赖 1.1.1. 一个概念是应该独立地被理解、设计和实现的 1.1.2. 独立性是概念的简单性和可重用性的关键 1.2. 软件存在依赖性 1.2.1. 不是说一个概念需要依赖另一个概念才能正确运行 1.2.2. 只有当一个概念存在时,包含另一个概念才有意义 1.3. 概念依赖关系图简要概括了软件的概念和概念存在的理

数据依赖基础入门:函数依赖与数据库设计的关系

在数据库设计中,数据依赖 是一个重要的概念,它直接影响到数据库的结构和性能。函数依赖 作为数据依赖的一种,是规范化理论的基础,对数据库设计起着至关重要的作用。如果你是一名数据库设计的初学者,这篇文章将帮助你理解函数依赖及其在数据库设计中的应用。 什么是数据依赖? 数据依赖 是指同一关系中属性间的相互依赖和制约关系,它是数据库设计中语义的体现。在现实世界中,数据之间往往存在某种依赖关系,而这

c++ 和C语言的兼容性关系

C++ 和 C 语言有很高的兼容性,但也存在一些差异和限制。下面是它们的兼容性关系的详细介绍: 兼容性 C++ 是 C 的超集: C++ 语言设计为兼容 C 语言的语法和功能,大部分 C 代码可以在 C++ 编译器中编译运行。 标准库兼容性: C++ 标准库包含了 C 标准库的内容,如 stdio.h、stdlib.h、string.h 等头文件,但 C++ 的标准库也提供了额外的功能,如