有一个n*m的棋盘,每次可以取走一个方格并拿掉它右边和上面的所有方格。拿到左下角的格子(1,1)者输,如下图是8*3的

棋盘中拿掉(6,2)和(2,3)后的状态。




结论:答案是除了1*1的棋盘,对于其他大小的棋盘,先手总能赢。


分析:有一个很巧妙的证明可以保证先手存在必胜策略,可惜这个证明不是构造性的,也就是说没有给出先手怎么下才能赢。


证明如下:

如果后手能赢,也就是说后手有必胜策略,使得无论先手第一次取哪个石子,后手都能获得最后的胜利。那么现在假设先手

最右上角的石子(n,m),接下来后手通过某种取法使得自己进入必胜的局面。但事实上,先手在第一次取的时候就可以和

后手这次取的一样,进入必胜局面了,与假设矛盾。




巧克力游戏的变形:


约数游戏:有1~n个数字,两个人轮流选择一个数字,并把它和它的约数擦去。擦去最后一个数的人赢,问谁会获胜。


分析:类似巧克力游戏,得到结论就是无论n是几,都是先手必胜。


Chomp!博弈(巧克力游戏)相关推荐

  1. java博弈,人机博弈小游戏(Java)

    人机博弈小游戏 实现功能 电脑随机出拳 玩家任意出拳 五局三胜制 可判断最终赢家 下面展示 代码. // A code block var foo = 'bar'; // An highlighted ...

  2. 基于Python的人机博弈象棋游戏的设计与实现

    源码获取:https://www.bilibili.com/video/BV1Ne4y1g7dC/ 基于Python的人机博弈象棋游戏的设计与实现

  3. 博弈对抗游戏AI的技术方法的一些总结和思考

    目录 一.总体概况 1.博弈类型和算法 1)团队博弈 2)有限零和博弈 3) CFR系列算法 4)NFSP系列算法 2.不同的决策方式 二.不同游戏AI的简单介绍 1.棋盘游戏AI 2.纸牌游戏AI ...

  4. 人机博弈小游戏(Java)

    人机博弈小游戏 实现功能 萌新一个,自己写了一个猜拳的小游戏.正在学习中... 实现功能 电脑随机出拳 玩家任意出拳 五局三胜制 可判断最终赢家 下面展示 代码. // A code block va ...

  5. 设计一款博弈类游戏的人机对战算法、策略_卡牌游戏八合一,华人团队开源强化学习研究平台RLCard...

    雷锋网 AI 科技评论按:在过去的两三年中,我们经常听说人工智能在棋牌类游戏(博弈)中取得新的成果,比如基于深度强化学习的 AlphaGo 击败了人类世界冠军,由 AlphaGo 进化而来的 Alph ...

  6. 巴什博弈--Nim游戏

    人机博弈: 现有21根火柴.每次只能取走1~4根.取走最后一根火柴的人输.人先取,计算机后取.要求设计一个程序进行人机对弈,使得计算机一方为"常胜将军". 思路分析: (巴什博弈) ...

  7. 巴什博弈小游戏(Java实现)

    界面截图: 代码: package 巴什博弈;import java.awt.*; import java.awt.event.*; import java.util.ArrayList;import ...

  8. c语言编简单博弈小游戏,[2018年最新整理]实验二:利用α-β搜索过程的博弈树搜索算法编写一字棋游戏.doc...

    [2018年最新整理]实验二:利用α-β搜索过程的博弈树搜索算法编写一字棋游戏 实验二:利用α-β搜索过程的博弈树搜索算法编写一字棋游戏 一.实验目的与要求 (1)了解极大极小算法的原理和使用方法,并 ...

  9. 博弈,游戏,是否有先手必胜的情况

    最近做一个题, 说是 判断 某个游戏 是否有先手必胜的情况, 在草稿纸上画了画, 想了一阵,发现 把 所有当前游戏的局面描述为一个状态, 状态之间的变化 实际上构成一颗 多叉树, 如果 有先手必胜的情 ...

最新文章

  1. centos 服务详解
  2. java学习(112):simpledateformat进行格式化
  3. 为什么阿里巴巴不允许使用Executors?
  4. Javaの网络数据传输之Socket
  5. 报错解决:DataLossError: Unable to open table file Data loss: not an sstable (bad magic number):
  6. #今日论文推荐# XAI+网络安全?布兰登大学等最新《可解释人工智能在网络安全应用》综述,33页pdf阐述其现状、挑战、开放问题和未来方向
  7. 油溶性Cu,Mn共掺杂量子点ZnS量子点,ZnSe量子点,ZnInS量子点光转换材料
  8. 数字化转型,你也可以品
  9. 重装系统 重启计算机失败,电脑重装系统失败,不能开机了,怎么办,急求解决办法啊...
  10. 曾经一个程序员把BUG变成了彩蛋,这个程序员却把彩蛋变成了BUG
  11. Xposed模块深度美化Android
  12. 在南方旅游 VS 在北方旅游
  13. 空姐回应在飞机上拍内衣照遭开除:就算是被网暴我也要发声
  14. java 并发抢单_java如何实现高并发下的抢单?
  15. kaldi的egs/sitw实验调试过程(ssh.pl并行两台机器)
  16. 【图片新闻】西科斯基公司将建造美国总统的新型海军一号直升机VH-92A
  17. 《Swift iOS应用开发实战》——2.2 了解故事板
  18. idea output中文乱码解决办法
  19. 【转】写给.NET程序员,不要困在自己建造的盒子里
  20. 更高效地在Photoshop中工作

热门文章

  1. 基于TCP实现双向通信对话功能
  2. SpringMVC的数据响应-回写数据-直接回写json格式字符串(应用)
  3. 通过反射获取私有构造方法并使用
  4. docker启动失败,报docker dead but pid file exists,处理方式
  5. Zookeeper_原生API操作(二)
  6. lamp自动部署工具_salt实现lamp自动化部署
  7. 【报错笔记】eclipse启动出现错误
  8. 【图文详解】第一个Java程序HelloWorld详解,写Java程序需要注意什么
  9. 电机串电阻会有什么影响?
  10. 零元学Expression Blend 4 - Chapter 38 看如何使用Clip修出想要的完美曲线(下)