博客
关于我
巴什博弈
阅读量:286 次
发布时间:2019-03-01

本文共 677 字,大约阅读时间需要 2 分钟。

巴什博弈:游戏规则与胜利条件

巴什博弈是一种经典的博弈论问题,它以其简单的规则和复杂的策略著称。游戏规则通常是这样的:一堆Initially有n个物品,两名玩家轮流从这堆物品中取走物品。每次取的物品数量必须在1到m个之间(包括1和m)。最后取光者获胜。

理解巴什博弈的关键在于寻找“奇异局”(Nim-losing positions)。奇异局是指当前玩家无论采取什么样的合法移动,对手都能通过适当的策略确保胜利的状态。我们需要通过分析,找出这些必败的位置。

要理解奇异局,我们可以从简单的情况入手。假设物品堆的大小为m+1(其中m是每次可以取的最大数量),那么无论当前玩家取走1到m个物品,对手都可以取走剩下的物品,从而取得胜利。这意味着m+1个物品的堆是必败的位置。

将这一概念推广,我们可以得到所有形如k*(m+1)(k=1,2,3,...)的堆大小都是必败的状态。如果先手的玩家面对这样的堆大小,无论他采取什么样的移动,对手都能将堆大小恢复到另一个k*(m+1)的状态,最终导致先手的失败。

然而,事情并没有这么简单。在实际游戏中,堆的大小通常不是m+1的整数倍,而是加上一个余数r(0 < r < m)。这个时候,聪明的玩家可以采取以下策略:先手玩家首先取走r个物品,使得剩下的物品数量为k*(m+1),这样对手就处于一个必败的状态。因此,初始堆大小如果是k*(m+1)的形式,先手玩家将处于劣势,无法避免失败。

总结来说,巴什博弈的胜利关键在于让对手陷入奇异局。玩家需要通过分析堆的大小和移动策略,找到最佳的起始移动,确保对手无法摆脱被动状态。

转载地址:http://rwlo.baihongyu.com/

你可能感兴趣的文章
Oracle 在Sqlplus 执行sql脚本文件。
查看>>
Oracle 如何处理CLOB字段
查看>>
oracle 学习
查看>>
oracle 定义双重循环例子
查看>>
ORACLE 客户端工具连接oracle 12504
查看>>
Oracle 客户端连接时报ORA-01019错误总结
查看>>
oracle 导出sql数据库表结构,使用sql developer 导出Oracle数据库中的表结构
查看>>
oracle 嵌套表 例子,Oracle之嵌套表(了解)
查看>>
Oracle 常用命令
查看>>
Oracle 常用的V$视图脚本(二)
查看>>
Oracle 并行原理与示例总结
查看>>
oracle 并集 时间_Oracle集合运算符 交集 并集 差集
查看>>
Oracle 序列sequence 开始于某个值(10)执行完nextval 发现查出的值比10还小的解释
查看>>
oracle 执行一条查询语句,把数据加载到页面或者前台发生的事情
查看>>
oracle 批量生成建同义词语句和付权语句
查看>>
oracle 抓包工具,shell 安装oracle和pfring(抓包) 及自动环境配置
查看>>
Oracle 拆分以逗号分隔的字符串为多行数据
查看>>
Oracle 排序中使用nulls first 或者nulls last 语法
查看>>
oracle 插入date日期类型的数据、插入从表中查出的数据,使用表中的默认数据
查看>>
Oracle 操作笔记
查看>>