(算法)游戏必胜策略
2023-09-14 08:59:06 时间
题目:
1、游戏1:
有两堆硬币,数量不定(大于0),两个人进行游戏,每个人每次可以从任意一堆取任意数量的硬币(大于0),谁拿走了最后的硬币即为胜者。
2、游戏2:
一个盒子,里面有一定数量(大于0)的巧克力和一根辣椒 ,两个人进行游戏,每个人每次可以从中拿出1或2或3颗巧克力,辣椒只能最后拿,谁最后拿走了辣椒就得吃掉她,也即输了。
思路:
先提供一下答案:
游戏1:
如果两堆硬币数量相等,则让对方先取,然后再自己取,取出数量多的那一堆的硬币,使得两堆硬币数量相等,依次进行。
如果两堆硬币数量不等,则自己先取,取出数量多的那一堆的硬币,使得两堆硬币数量相等,然后再让对方取,依次进行。
游戏2:
如果巧克力数量为4的倍数,则让对方先取,然后再自己取,取的数量为(4-对方取的数量),依次进行。
如果巧克力数量不是4的倍数,则让自己先取,取的数量为(巧克力数量%4),然后再让对方取,然后再自己取,取的数量为(4-对方取的数量),依次进行。
策略归纳:
这两个游戏有个共同点:就是要找到一个平衡点。
如果初始状态就是平衡的,那么就由对方先来,让他打破平衡,然后自己再来维持平衡。
如果初始状态不是平衡的,那么就由自己先来,维持平衡,然后让对方打破,接着自己再去维持平衡。
游戏1的平衡点:两堆硬币数量相等;
游戏2的平衡点:巧克力的数量为4的倍数;
找到了平衡点,就可以确定游戏的优先顺序和每一步的策略,必胜者的策略就是不断地去维持平衡。
相关文章
- 玩玩webgame开发(4):游戏数据结构设计[通俗易懂]
- 游戏常用算法-洗牌算法
- 用python写一个简单的贪吃蛇游戏(附代码)「建议收藏」
- 哈希竞猜游戏搭建原理
- AMD开源显卡光追分析器,可提升游戏开发性能,网友:A卡战未来
- 【二】MADDPG多智能体算法实现(parl)【追逐游戏复现】
- Linux上的游戏之旅:让你的游戏梦想变成现实(linux设计游戏)
- Win10如何确认是否已修复KB5001330导致的游戏问题
- 游戏开发实现高效的Redis数据库存储(游戏redis数据库)
- 这款跟指尖陀螺一样无聊的AR游戏,怎么就登上苹果商店免费游戏Top1?
- AI+VR团队最多,游戏遇冷,详解Vive X第三批入选团队