博弈论策略

       规则:有N个棋子,有两个玩家。每个玩家可以从剩下的棋子中取走1-3个。最后取走剩下所有的棋子着为赢家。
       例:(引用原文)有21个棋子,有A,B两个玩家。A先开始,请问A要怎么做才能确保自己一定赢?

       
       解答:首先分析问题,要确保自己最后能取走剩下的所有棋子,则必须要确保最后剩下的棋子数为:1~3。所以B最后一次取的时候,一定要为4,(B取1==剩下3,取2==剩下2,取3==剩下1)。
       怎么才能剩下4个给B取呢?那只有当A取时,要确保棋子数为:5~7。
       有点像分析程序递归问题:先找出口,然后从最后面开始往前面分析。
       再上层,要确保B能剩下5~7个棋子,则必须B取时要为8,(B取1==剩下7,B取2==剩下6,B取3==剩下5);
       以此类推,总结:要确保B在取时棋子数为4的倍数。
       所以开始A要取1个,B则从20个中取。可能取走1,2,3个===》剩下17,18,19个
      A再取走1~3个,只要确保剩下为16个就可以。=======》类推,则最后B只能从4个中取了,所以A一定获胜。
 

      
      扩展:
      1.假设是最后取走剩下所有的棋子为输,还是A先取,那A该怎么做才能赢?分析方法雷同,只是最后给B留下的棋子数一定要是1,然后再一层一层的往上推。
       2.假设有三个人参加博弈,其他规则一样:最后取走剩下所有的棋子为赢(输),还是A先取,那A该怎么做才能赢?这个有点困难,至少我现在还没解决。后期解决了再贴上来。


注:原文在《 妙趣横生博弈论》





你可能感兴趣的:(博弈论策略)