• [数学故事]火柴游戏


      一个最普通的火柴游戏就是两人一起玩,先置若干支火柴於桌上,两人轮流取,每次所取的数目可先作一些限制,规定取走最后一根火柴者获胜。 

    规则一:若限制每次所取的火柴数目最少一根,最多三根,则如何玩才可致胜

    例如:桌面上有 n=15 根火柴,甲、乙两人轮流取,甲先取,则甲应如何取才能致胜

    为了要取得最后一根,甲必须最后留下零根火柴给乙,故在最后一步之前的轮取中,甲不能留下1根或2根或3根,否则乙就可以全部取走而获胜。如果留下4根,则乙不能全取,则不管乙取几根(1或2或3),甲必能取得所有剩下的火柴而赢了游戏。同理,若桌上留有8根火柴让乙去取,则无论乙如何取,甲都可使这一次轮取后留下4根火柴,最后也一定是甲获胜。由上之分析可知,甲只要使得桌面上的火柴数为 4、8、12、16... 等让乙去取,则甲必稳操胜券。因此若原先桌面上的火柴数为15,则甲应取3根。(∵15-3=12)若原先桌面上的火柴数为18呢?则甲应先取2根(∵18-2=16)。

    规则二:限制每次所取的火柴数目为1至4根,则又如何致胜

    原则:若甲先取,则甲每次取时,须留5的倍数的火柴给乙去取。

    通则:有n支火柴,每次可取1至k支,则甲每次取后所留的火柴数目必须为k+1之倍数。

    规则三:限制每次所取的火柴数目不是连续的数,而是一些不连续的数,如1、3、7,则又该如何玩法?

    分析:1、3、7均为奇数,由於目标为0,而0为偶数,所以先取者甲,须使桌上的火柴数为偶数,因为乙在偶数的火柴数中,不可能再取去1、3、7根火柴后获得0,但假使如此也不能保证甲必赢,因为甲对於火柴数的奇或偶,也是无法依照己意来控制的。因为〔偶-奇=奇,奇-奇=偶〕,所以每次取后,桌上的火柴数奇偶相反。若开始时是奇数,如17,甲先取,则不论甲取多少(1或3或7),剩下的便是偶数,乙随后又把偶数变成奇数,甲又把奇数回覆到偶数,最后甲是注定为赢家;反之,若开始时为偶数,则甲注定会输。

    通则:开局是奇数,先取者必胜;反之,若开局为偶数,则先取者会输。

    规则四:限制每次所取的火柴数是1或4(一个奇数,一个偶数)。

    分析:如前规则二,若甲先取,则甲每次取时留5的倍数的火柴给乙去取,则甲必胜。此外,若甲留给乙取的火柴数为5之倍数加2时,甲也可赢得游戏,因为玩的时候可以控制每轮所取的火柴数为5(若乙取1,甲则取4;若乙取4,则甲取1),最后剩下2根,那时乙只能取1,甲便可取得最后一根而获胜。

    通则:若甲先取,则甲每次取时所留火柴数为5之倍数或5的倍数加2。
  • 相关阅读:
    一个漂亮的lazarus做的pagecontrol
    预测,阿里盒子必将失败!
    sex在软件开发中的运用--SIX技术
    糟糕的@@identity,SCOPE_IDENTITY ,IDENT_CURRENT
    Delphi、Lazarus保留字、关键字详解
    糟糕的界面设计
    Firebird存储过程--更加人性化的设计
    lazarus的动态方法和虚拟方法
    用户行为导向的交互设计
    Javascript的一个怪现象
  • 原文地址:https://www.cnblogs.com/zhangzujin/p/4589636.html
Copyright © 2020-2023  润新知