首页 > 其他分享 >[数学记录] 博弈论

[数学记录] 博弈论

时间:2023-03-18 18:56:26浏览次数:47  
标签:博弈论 游戏 记录 必败 石子 异或 数学 Nim SG

Part 0. 问题

只有公平博弈,不能操作者输。

Part 1. 基础理论

  • Bool SG :必败态:后继全是必胜态;必胜态:后继存在必败态。
  • 必败态 SG 值 = 0
  • 当个游戏 SG 值为后继状态 SG 值的 mex。
  • 多个游戏 SG 值为当个游戏的 xor 值。

Part 2. 经典模型

Nim

若干堆石子,每次操作

SG 本身就是对应一堆石子。异或和 = 0 / \(\ne = 0\) 意味着先手必败 / 先手必胜。

Joker Nim

还是若干堆石子,但是两个玩家自己也有一堆石子。可以把自己的拿给中间的,也可以把中间的拿给自己的。

还是 Nim。因为一方如果把自己的给中间的,另一方就拿回来,这样另一方只增不减。

Lasker's nim

还是取石子,但是可以分成把一堆变成两份。

一堆:\(f[i] = mex\{f[1], \dots, f[i - 1], f[a] ^ f[i - a]}\)。

找规律可以做到 O(1)。

Staircase Nim

每次可以往左边给若干石子。

结论:偶数格子的异或值。

左移奇数格,下一方可以再移动一次。所以奇数格的移动是没有意义的。
而偶数格左移一格到了奇数格相当于丢弃。

Anti-SG

无法操作者 win.

结论:

  • 当所有单个游戏 SG = 0,且所有 SG 异或和 = 0
  • 当所有单个游戏 SG > 0,且存在 SG 异或和 > 0

标签:博弈论,游戏,记录,必败,石子,异或,数学,Nim,SG
From: https://www.cnblogs.com/Lates/p/17231475.html

相关文章

  • 算法刷题记录
    http://acm.hdu.edu.cn/showproblem.php?pid=1094#include<iostream>#include<vector>intmain(){usingnamespacestd;vector<int>vecrow;......
  • java调用WebService(未完成)记录篇
    背景:因工作需要和一个Sap相关系统以WebService的方式进行接口联调,之前仅听过这种技术,但并没有实操过,所以将本次开发相关的踩坑进行记录通过一个实例来认识webservice服......
  • #yyds干货盘点 【React工作记录二十四】ant design form赋值问题
     目录​​前言​​​​导语​​​​解决思路​​​​总结​​前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五......
  • 一次简单的性能测试记录
     性能测试1.性能测试的场景:对性能压测接口:抢购进行测试 过程:刚开始没有提供接口,自己去页面抓包然后通过登录接口获取token才能去验证"藏品详情""藏品列......
  • 一些做题记录
    难度从\(1\sim10\)分类,越小越简单。CF1100D算法难度:2实现难度:3思维难度:7具体思路:这个数据范围很奇怪,而且,这东西很人类智慧。具体而言,先把王挪到棋盘正中间,然后将......
  • c++ 影响多线程速度的因素记录
    目录0.序言1.缓存行同步问题/共享数据竞争1.1测试代码1.2测试逻辑1.3测试结果1.4小结2.任务颗粒度过小问题2.1测试代码2.1测试逻辑2.2测试结果2.3小结3.缓存未......
  • 记录个人第一篇博客~
     《从前慢》                   --木心《云雀叫了一整天》记得早先少年时大家诚诚恳恳说一句是一句清早上火车站长街黑暗......
  • 【链表】复习/刷题 记录
    leetcode203.RemoveLinkedListElements/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode......
  • 【问题记录】html双横杠换行问题,white-space的重要性
    废话如图,就是这两个小玩意儿。两个​​--​​同时出现在html就会傻逼地给你进行智障前期,以为是浏览器把这个当做​​英文单词的换行​​​来处理了,所以用css的​......
  • NET中使用NLog记录日志转载
    .NET中使用NLog记录日志 以前小编记录日志使用的是Log4Net,虽然好用但和NLog比起来稍显复杂。下面小编就和大伙分享一下NLog的使用方式。引用NLog.Config在使用NLog......