有趣的巴什博弈(Bash Game)

文章目录

问题定义

问题存在两种不同的形式:

  • A和B两个人玩游戏,假设有n个物品,每人每次必须至少拿1个,最多拿m个,先拿到最后一个物品的人获胜。思考一种最佳策略?
  • A和B两个人玩游戏,假设有n个物品,每人每次必须至少拿1个,最多拿m个,先拿到最后一个物品的人失败。思考一种最佳策略?

存在很多变种,比如喊数字等等,但核心都是一样的。

解法

首先给出结论,不管n和m的取值如何,问题都存在唯一解,即该游戏不公平。

赛制1:先拿完的人获胜

首先对n进行分解,n = k(m+1) + l,将n转化成与m+1相关的形式。假设A先拿,B后拿

  • 如果l=0,即n能被m+1整除,此时B(后手)必胜。因为无论A拿多少(x),B只需要拿m+1-x个即可,这样在最后一个轮次时,还剩m+1个,在至少拿1个最多拿m个的限制下,B一定能拿完。
  • 反之,如果l!=0,此时A(先手)必胜,A在只需要先拿l个,就能B陷入上一种情况。

结论:n%(m+1)==0时,B必胜,否则A必胜。

赛制2:先拿完的人失败

分析:相比于赛制1,直接思考赛制2可能更复杂,但换个角度想,其实就相当于变成了先拿完n-1个物品的人获胜,因为每次至少要拿1个,只要谁先拿到n-1个物品,剩下的那个人就必须拿完。因此,把赛制1的中的n换成n-1即可。

结论:n%(m+1)==1时,B必胜,否则A必胜。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值