杭州电子科技大学刘春英教授讲解组合博弈入门与取子游戏算法
需积分: 9 85 浏览量
更新于2024-07-19
收藏 386KB PPT 举报
本资源是杭州电子科技大学刘春英教授关于ACM课程的第十一讲,主题是“组合博弈入门”,主要涵盖简单取子游戏和Nim游戏的概念与策略。首先,通过“导引游戏”引入,这是一种两人对战,用23张扑克牌进行的游戏,玩家轮流取1-3张牌,直到牌被取完,最后取牌者为胜。这种游戏属于组合博弈,特点是操作在一个有限集合(如规定大小的棋盘)中进行,且遵循特定规则。
组合游戏的核心概念包括必败点(P点)和必胜点(N点)。必败点是当前玩家无法取胜的状态,而必胜点则是后续玩家可以确保胜利的位置。游戏的算法实现涉及标记这些点,从终结点开始,逐步确定哪些是必败点,哪些是一步操作后能到达必败点的必胜点。
举例来说,“SubtractionGames”的练习让学员理解如何在特定的数字集合(如S={1,3,4})中确定游戏的胜负情况,如Pos序列中的PNPNNNNPN...模式。实战练习包括“kiki'sgame”,这可能是一个更复杂的真实案例,用于训练学员的实际操作技巧。
第二部分则深入探讨了Nim游戏,这是经典的组合博弈之一,通常涉及三个堆的棋子,玩家轮流移走任意数量的棋子,目标是使对手无法进行合法操作。Nim游戏的关键在于 Sprague-Grundy 函数或 Grundy 数,它可以帮助分析游戏的胜负策略。
通过这些内容,学生可以学习如何分析和设计策略,解决这类博弈问题,这对于提高ACM竞赛中的编程技能尤其有帮助。这节课不仅锻炼了逻辑思维和问题解决能力,还为理解更高级的博弈论理论打下基础。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2009-02-08 上传
2021-09-29 上传
点击了解资源详情
2021-10-17 上传
zmh69695328
- 粉丝: 3
- 资源: 2
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析