zoukankan      html  css  js  c++  java
  • 博弈论-一堆nim博弈合在一起

    今天A了张子苏大神的的题,感觉神清气爽。

    一篇对于多层nim博弈讲的很透彻的博文:http://acm.hdu.edu.cn/forum/read.php?fid=9&tid=10617

    我来整理一下:

    问题1:今有若干堆火柴,两人依次从中拿取,规定每次只能从一堆中取若干根, 可将一堆全取走,但不可不取,最后取完者为胜,求必胜的方法。 

    定义:若所有火柴数异或为0,则该状态被称为利他态,用字母T表示;否则, 为利己态,用S表示。

    注意:这篇博文是先定义s和t,再通过它们的性质推出结论。

    [定理1]:对于任何一个S态,总能从一堆火柴中取出若干个使之成为T态。

    证明:

    1. 若有n堆火柴,每堆火柴有A(i)根火柴数,那么既然现在处于S态, c = A(1) xor A(2) xor … xor A(n) > 0;
    2. 把c表示成二进制,记它的二进制数的最高位为第p位,则必然存在一个A(t),它二进制的第p位也是1。(否则,若所有的A(i)的第p位都是0,这与c的第p位就也为0矛盾)。
    3. 那么我们把x = A(t) xor c,则得到x < A(t).这是因为既然A(t)的第p位与c的第p位同为1,那么x的第p位变为0,而高于p的位并没有改变。所以x < A(t).而
    4. A(1) xor A(2) xor … xor x xor … xor A(n)
    5. = A(1) xor A(2) xor … xor A(t) xor c xor … xor A(n)
    6. = A(1) xor A(2) xor… xor A(n) xor A(1) xor A(2) xor … xor A(n)
    7. = 0
    8. 这就是说从A(t)堆中取出 A(t) - x 根火柴后状态就会从S态变为T态。证毕。

    [定理2]:T态,取任何一堆的若干根,都将成为S态。

    1. 证明:用反证法试试。
    2. c = A(1) xor A(2) xor … xor A(i) xor … xor A(n) = 0;
    3. c' = A(1) xor A(2) xor … xor A(i') xor … xor A(n) = 0;
    4. 则有:
    5. c xor c' = A(1) xor A(2) xor … xor A(i) xor … xor A(n) xor A(1) xor A(2) xor … xor A(i')  xor … xor A(n) = A(i) xor A(i') =0
    6. 进而推出A(i) = A(i'),这与已知矛盾。所以命题得证。

    [定理 3]:S态,只要方法正确,必赢。 

    1.   最终胜利即由S态转变为T态,任何一个S态,只要把它变为T态,(由定理1,可以把它变成T态。)对方只能把T态转变为S态(定理2)。这样,所有S态向T态的转变都可以有己方控制,对方只能被动地实现由T态转变为S态。因为全零属于T态,故S态必赢。(不能单单从对称拿取来考虑这个问题。例如a=b xor c,然后求sg这种情况。因为证不出来。。定理1只是说存在这种情况,并没有说对称拿取。)

    [定理4]:T态,只要对方法正确,必败。 

    1.   由定理3易得。 

    问题2:今有若干堆火柴,两人依次从中拿取,规定每次只能从一堆中取若干根, 可将一堆全取走,但不可不取,最后取完者为负,求必胜的方法。

    【未完待续】

  • 相关阅读:
    Java菜鸟之java基础语法,运算符(三)
    Lotus迁移到Exchange 2010 POC 之Domino Server的配置!
    hibernate:对于java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I错误解决办法
    【targeting学习笔记】Display Advertising Targeting
    Domino 迁移到Exchange 之 Domino Admin 安装!
    sqlite3使用详解(Qt版本)
    .net反混淆脱壳工具de4dot的使用
    破解NET的四大神器(转)
    C#让应用程序只运行一个实例的几种方法
    Windows server 2008 R2实现多用户远程连接
  • 原文地址:https://www.cnblogs.com/MyNameIsPc/p/7399853.html
Copyright © 2011-2022 走看看