20个银币1个金币

来源:互联网 发布:淘宝la prairie假货 编辑:程序博客网 时间:2024/05/06 00:25

个人主页: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要面对必败的情况。

原创粉丝点击