个人主页:guanzi.info
问题描述:
假设有20个银币1个金币,你和你的同伙分赃,每次可拿走1~4个硬币,当银币全部拿出后才可以拿金币。请问你怎么拿才可以保证金币属于你?
思考过程:
必须承认的一点是,一看到这个题我蒙了。。。。冷静一下,躺下来睡一觉
先从简单入手吧,用Y代表银币,J代表金币。我是A,同伙是B
如果这个题是
1Y 1J的话-----A必败(条件1)
2Y 1J的话-----A拿1个必胜
3Y 1J的话-----A拿2个必胜
4Y 1J的话-----A拿3个必胜
5Y 1J的话-----A拿4个必胜
6Y 1J的话-----这个经过我仔细思考以后发现好像A没有必胜策略!!!
于是感觉难道是出现循环了,难道隐藏着规律!!!
接下来就是漫长的讨论与思考过程。后产生如下结论
当某人mini-cool需要拿银币是遇到的是nY 1J的情况,我们简述为情况F(n)。
假设F(n)对于当前mini-cool来说是必败的,那么我们可以推论当mini-cool面对F(n+1 ~ n+4)的情况时是有必胜策略的。(推论1)
看懂上一句话很重要,于是我决定解释一下。
当mini-cool面对F(n+1)时,mini-cool毫不犹豫的拿走1个Y,那么mini-cool的同伙就面对的是F(n),而我们知道F(n)是必败的,所以mini-cool赢了
再多嘴一句
当mini-cool面对F(n+4)时,mini-cool毫不犹豫的拿走4个Y,那么mini-cool的同伙就仍然面对的是F(n),而我们知道F(n)是必败的,所以mini-cool赢了
另一个结论
假设F(n)对于当前mini-cool来说是必败的,那么我们可以推论mini-cool面对F(n+5)时是必败的.(推论2)
这个也要解释一下
当mini-cool面对F(n+5)时,mini-cool不论是取1~4的任何数,最终对于他的队友来说形成的情况都是在F(n+1~n+4)的情况中。而通过推论1我们知道F(n+1~n+4)是有必胜策略的。
结论:
再结合条件1可知F(1)必败,于是F(6)必败,F(11)必败,F(1+5×n)必败
F(1)必败,于是有F(2 ~ 5)必胜, F(7~10)必胜,F(1+1×n ~ 1+4×n)必胜
在必胜的情况下,A要做的就是取走一个数,使得B面对的是必败的情况。也就是A面对的是F(1+1×n ~ 1+4×n),B面对的是F(1+5×n)。且A每一次取数都保证B要面对必败的情况。