zoukankan      html  css  js  c++  java
  • 博弈总结

    1、nim博弈

    n堆石子,每次可以从一堆里面取任意个石子

    对于一堆石子,SG函数就是石子数,整个游戏的SG函数是每一堆石子的SG函数的亦或和

    必胜:SG不为0

    必败:SG为0

    2、巴什博奕(Bash Game)

    一堆石子,每次最多从里面取 m 个石子

    一堆石子的SG函数为石子数 % (m + 1)

    必胜:SG不为0

    必败:SG为0

    3、Nimk Game

    每次最多可以同时从 k 堆石子进行操作,这 k 堆可以取不同数量的石子

    一堆石子的SG函数为石子数

    对每一个二进制位单独算,求SG函数每一个二进制位1的个数 % (k + 1),如果都为 0 ,则必败,否则必胜

    4、Anti-Nim Game

    与 nim 博弈相反,

    不能取石子的一方获胜

    必胜:SG不为 0 且至少有一堆石子数大于 0 或者SG为 0 且每一堆石子数都为 1

    必败:其余为必败

    5、阶梯博弈(Staircase Nim)

    每次可以从一个阶梯上拿掉任意数量石子放到下一层阶梯,不能操作的为输

    SG函数为奇数阶梯上的石子的亦或和

    6、威佐夫博弈(Wythoff Game)

    有两堆石子,每次可以从一堆或者两堆里拿走一样数目的石子,不能取的为输

    若两堆石子的初始值为(x,y),且 x < y ,则另z = y - x,记w=(int)[((sqrt(5)+1)/ 2)* z  ]  // 向下取整

    若w = x,则先手必败,否则先手必胜。

    详解见博客:https://blog.csdn.net/qq_41311604/article/details/79980882

    7、树上删边游戏

    给定根节点,每次可以删掉一条边,不与根节点相连的部分删除

    叶子节点SG为0,其他节点的SG函数为子树SG+1的亦或和

  • 相关阅读:
    BCD与ASCII码互转-C语言实现
    <<用法
    linux无锁化编程--__sync_fetch_and_add系列原子操作函数
    C中的volatile用法
    c++ k^1
    linux ftp使用相关
    linux应用程序启动时加载库错误问题
    kafka消费者脚本无法启动问题
    Django框架简介
    前端基础之Bootstrap
  • 原文地址:https://www.cnblogs.com/scaulok/p/9763075.html
Copyright © 2011-2022 走看看