博弈论 巴什博弈
博弈论有一个默认的前提就是每个人做的都是对自己有利最佳策略。(能赢就不要输,不能赢也要给对方制造麻烦)
就算当前不能赢也要尽可能 增加对方赢需要进行操作的步骤。
1、问题描述
A和B两个人玩游戏,假设有n个物品,每人每次必须至少拿1个,最多拿m个,先拿到最后一个物品的人获胜。思考一种最佳策略?
2、最优策略
在先取完者胜的巴什博弈中,若n可被m+1整除,则后手方必胜,否则先手方必胜。
1、当 n < m + 1时 先手方只需要拿完所有物品即可胜利。--先手必胜。
2、当 n = m + 1时 无论先手方取走多少物品,后手方都能够直接将剩余物品直接取完。--后手必胜。
3、当 n > m + 1时 设n = k(m + 1) + r 其中 (0 <= r < m + 1)
当 r = 0时 此时n = k(m + 1)无论先手取多少,后手只需要取走 (m + 1 - 先手取的数量)即可获胜。
当r != 0时 先手只需要在第一次取走r个物品,即可将情况转移为r = 0,因此此时先手必胜。
注:为什么是 m + 1,不是m + 2 或者m + 3....
因为如果取m + 2,下一轮对手只需要取一个,你无论如何取,都不可能将此轮之和变为 n + 2。
3、综上
1、求n整除m + 1的余数r,若r != 0则拿取r件物品
2、若r = 0则必败
4、变体
A和B两个人玩游戏,假设有n个物品,每人每次必须至少拿1个,最多拿m个,先拿到最后一个物品的人失败。思考一种最佳策略?
相当于变成了先拿完n-1个物品的人获胜,因为每次至少要拿1个,只要谁先拿到n-1个物品,剩下的那个人就必须拿完。因此,把赛制1的中的n
换成n-1
即可。
结论:n%(m+1)==1时,B必胜,否则A必胜。
本文作者:lyx9785
本文链接:https://www.cnblogs.com/lyx9785/p/18410599
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步