第231章 二进制
作者:想养只大橘猫   死亡游戏:弥留之城的公民们最新章节     
    已知情况为三排时,后手玩家必胜,那么,先手玩家是不是只要将四五排这个整体,也营造为后手必胜,那他是不是就是必胜的?
    当先手玩家行动完,将局面营造成这种结果之后,对于先手玩家来说,他就等于是这个新局面的后手玩家。
    只要他将第五排的某一根线剪断,此时,局面就会变成前三排不变,第四排4根,第五排也4根。
    那么,不管后手玩家怎么行动,先手玩家都是必胜的。
    比如,后手玩家如果剪的是四五排的线,那么四五排的情况就会变成后手玩家必胜的第二种情况,先手玩家跟着在四五排中的另一排,剪相同数量的线就行了。
    如果后手玩家剪的是前三排的线,那么先手玩家就按照三排后手必胜的逻辑行动就行了。
    这就是玩家得将五排丝线,看成是两个整体的原因。
    对手动前三排,自己就动前三排,对手动四五排,自己也动四五排。
    将两部分按照后手必胜的逻辑去做。
    当丝线的初始数量为6排,总数为21根时,情况会变得更加复杂。
    玩家还是得跟上面一样,将前三排视为一个整体,将四五六排视为一个整体。
    到了这个时候,会出现一种新的情形,即后手玩家必胜的第三种情况。
    已知当丝线数量为三排,且分布方式为1、2、3根时,后手玩家必胜。
    那么,只要后手玩家能将第二部分的4、5、6根,最后变成1、2、3根,那么他就是必胜的。
    为了达成这一目的,先手玩家需要先将丝线分布变成1、4、5根。
    此时,不管新局面的先手玩家怎么剪,后手玩家都能将最终结果变成1、2、3根,形成后手玩家必胜的局面。
    又或者将情况变成440、330、220、110,同样后手玩家必胜的局面。
    到了这里,就可以得出一个新的结论,即:当丝线分布数量为123或者145时,后手玩家是必胜的。
    按照这个逻辑,可以得出一个大胆的猜想:既然123和145都是后手赢,那么167和189是否同样是后手赢?
    这个问题的答案为:是。
    为了验证这个答案,可以讨论一下167的情况。
    假设先手玩家将7变成6,那么后手玩家就剪掉1,最后就变成066,后手赢。
    假设先手玩家将6变成5,那么后手玩家就将7变成4,最后就变成145,还是后手赢。
    其他的情况就不再一一举例,总之,经过验证,最后会发现,这个猜想是正确的。
    那么,当排数为6排时,先手玩家要做的事情其实就很简单了,那就是将第六排剪掉5根,让四五六排变成451的形式。
    此时,已经行动完的先手玩家,在当前的情形下就会变成后手玩家,是必胜方。
    当丝线数量为7排时,推演逻辑是整个穷举法中最复杂的部分,由于过程太过于复杂,因此直接上结论:后手赢。
    在知道了这一结论之后,第八排的结果其实就很简单了。
    只要先手玩家重复四排那样的操作,在开局时将第八排全部剪掉,那么局势就会变得跟七排开局相同,此时,后手赢。
    那么九排的推演逻辑也会等同于五排,即营造完后手必胜的局面之后,已经行动过的先手成为后手,最后必胜。
    此时,123排为一个整体、4567排为一个整体、89排也为一个整体,由于三个整体都是后手必胜,那么营造出这个局面的先手必胜。
    以此类推,十排的逻辑就会变得跟六排时相同,只要先手玩家开局时剪掉十排的9根线,让8910排变成189。
    根据之前的结论,可以得出这是后手必胜的局面。
    因此,这场游戏如果通过穷举法推演,最后可以得出的结论为:先手必胜。
    “如果不使用穷举法,难道还有什么方法能确定自己怎么做吗?”
    虽然孔元青此时已经找到了正解,可1号还是感觉不甘心。
    “有啊,如果使用二进制的话,这个游戏就会变得简单很多了。”
    孔元青的表情虽然很平淡,但心里其实也在庆幸自己曾经了解过二进制。
    所谓的二进制,简单点来说就是满二进一,这与平时的满十进一是不一样的。
    比如,数字2在十进制里,那就是2,而在二进制里,数字2因为满足了进一位的条件,就会变成10。
    以此类推,3就会变成11,4就会变成100,10就会变成1010。
    在使用二进制之后,原本的十排丝线,其对应的数字就会变成一个由1和0组成的表格。
    这样做的目的,是将整体的数据简化成更加简单的东西。
    既然每一排的丝线数量变成了由0和1组成的数据,那么,当玩家剪断某一排的丝线时,是不是就会改变那一排的0和1的分布?
    而且,不管玩家剪断的是多少根线,对应排的数据,是不是也只会由0变成1,或者由1变成0?
    这就是二进制解法的最大意义。
    此时,如果将整个表格进行纵向观察,就会发现,每当有玩家行动完以后,纵向上的数字,最多只会发生一个数字的改变。
    比如,如果某人将第二排的丝线剪断一根,让其从两根变成一根。
    那么第二排的二进制表达式,就会从0010变成0001。
    这个时候,第三列的数字就减少了1,而第四列的数字就增加了1。
    也就说,每一列的数字,最多只能产生正负1的变化。
    根据这个结论可知,如果某一列的数字相加原本为偶数,一名玩家行动完之后,它最多加一或者减一,成为一个奇数,或者压根就不变,还是原来那个数字,不可能从一个偶数,变成另一个偶数。
    这个结论的意义在于,当每一列的数字相加都为偶数时,后手必胜。
    比如,123的情形时,三排的二进制是这样的:
    001
    010
    011
    可以发现,三列的数字之和为0、2、2,都是偶数(0属于偶数)。