一排石头的游戏

来自《编程之美》

N块石头排成一行,每块石头有各自固定的位置。两个玩家依次取石头,每个玩家每次可以取其中任意一块石头,或者相邻的两块石头,石头在游戏过程中不能移位(即编号不会改变),最后能将剩下的石头一次取光的玩家获胜。这个游戏有必胜策略吗?

这个题目和放硬币问题(点击打开链接)差不多

答案是先手有必胜策略。


拓展:

如果规定,最后取完所有硬币的人输,谁又有必胜策略呢?

先看看前面几个状态:

1是负态,2是胜态,3是胜态,4是负态


其实,先手第一次操作无非只有2类:

第一类,把n变成a和b,a+b=n-1或n-2

即留下左边的a个和右边的b个,取走1个或者2个

第二类,把n变成n-1或者n-2,即取走最左边的1个或者2个


对于第一类操作:

(1)如果a是负态

后手可以保证b那一块是后手最后拿完。

也就是说,后手可以保证,a那一块一定是先手先开始拿。

注意,我并没有说先拿完b,然后先手就只能拿a了,而是说,a和b是独立的,

既然后手可以保证b那一块是后手最后拿完,那么就可以保证,a那一块一定是先手先开始拿。

这样的话,后手就胜利了。

(2)如果b是负态,和(1)是一样的

(3)如果a和b都是胜态

显然后手就胜利了。

a和b是独立的,后手可以保证a是先手最后拿完,b也是先手最后拿完。

也就说,无论n是多少,如果先手采用第一类操作,就一定输了。


如果n-1或者n-2是负态,那么对应的取走最左边的1个或者2个,这就是必胜策略了,n就是胜态。

如果n-1和n-2都是胜态,那么n就是负态。

根据这个进行递推可以发现,

如果n=3k+1,那么后手有必胜策略,如果n=3k或者3k+2,那么先手有必胜策略。


答案是,如果n=3k+1,那么后手有必胜策略,如果n=3k或者3k+2,那么先手有必胜策略。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值