zoukankan      html  css  js  c++  java
  • NIM博弈

    NIM博弈
    NIM博弈是指有(n)堆石子,每堆石子有(a_i)颗,两个人轮流从任意一堆石子(i)中取走(x)((1leq xleq a_i)),没有石子可取的一方失败,判断胜败。
    判断方法
    判断NIM博弈的胜败采用异或运算:
    必胜态:(a_1 XOR a_2 XOR a_3 XOR cdots XOR a_n eq 0)
    必败态:(a_1 XOR a_2 XOR a_3 XOR cdots XOR a_n = 0)
    简要证明
    首先从XOR为零的状态拿走任意颗石子,一定会转移到XOR不为零的状态,所以从必败态只能转移到必胜态。
    下面证明从必胜态也可以转移到必败态。
    (a_1 XOR a_2 XOR a_3 XOR cdots XOR a_n = k(k eq 0)),选取(k)的最高位为1的一堆石子(a_i),由于(a_i XOR k)之后,最高位的1没有了,所以(a_i XOR k<a_i),所以可以从(a_i)中选择一定数量的石子,使得剩下的石子个数为(a_i XOR k),这样(a_1 XOR a_2 XOR a_3 XOR cdots XOR (a_i XOR k)cdots XOR a_n = 0),所以由必胜态可以转移到必败态。

  • 相关阅读:
    windown reids
    redis 类型、方法
    nginx 路由配置
    http status code
    beego orm mysql
    thinkphp5
    beego
    MAC 更新brew 镜像源
    php session存入redis
    ios项目开发— iOS8 定位功能API改变
  • 原文地址:https://www.cnblogs.com/fxq1304/p/13404444.html
Copyright © 2011-2022 走看看