抓堆

有一堆谷粒(例如:100粒),甲乙轮流抓,每次可抓1-5粒,甲先抓,规定谁先抓到最后一把谁赢。

问:甲应该如何抓?为什么?

 先说答案:

甲先拿总数除以6的余数个数(例如总共100粒,则第一次拿就拿4粒,100/6余数为4),然后设乙拿x个,接着甲拿y个,但是y必须满足x+y=6,意思就是乙拿了后甲拿的个数必须要和乙拿的个数相加等于6,这样最后一把必然是甲。

但是如果总数刚好是6的倍数则甲会输。

为什么根6相关,是因为规定抓1-5粒,如果抓1-6粒则就要算7的倍数。

那这又是为什么呢?

首先,甲如果拿整局游戏的最后一次,则在乙拿个人的最后一次时需要乙没法拿完(谷堆的谷粒大于5个)且乙拿了之后必须使甲能够一次拿完(谷堆的谷粒数小于等于5),

而每人每次至少拿1粒,最多拿5粒,所以乙拿个人的最后一次时,谷堆必须刚好有6粒甲才能拿最后一次。所以把乙拿的每次都视作乙拿的最后一次,这样就能确保甲拿最后,所以甲第一次拿时需要使得剩下的谷粒数为6的倍数。

升级版:有三堆谷粒(例如100粒、200粒、300粒)里面拿,每次只能从一堆中抓,最少抓1粒,最多任意多。甲先抓,规定谁抓到最后一把谁赢,甲该怎么抓?

答案:

甲第一次抓就直接抓完一堆;

然后乙抓哪堆,甲就把哪堆抓完,如果乙直接抓完一堆,则甲抓完剩下的一堆。

作者:不曾潇洒
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/chengwb/p/10099709.html