数学系炉石专业课(二):一场比赛是如何进行的

2016-10-31 11:33作者:张昭君该昵称已经被占用来源:

  引言

  炉石的嘉年华比赛正在如火如茶(tu)的进行着 这个比赛的赛制我想大家都知道了 其实我是不太知道的 大概是5ban1的征服4 然后赛前提交的卡组

  由于是赛前提交卡组 所以很多人都会根据卡组的优劣势分析一下比赛结果 写了很多预测贴 (当然这里要提醒大家 预测贴不要随便去抄人家的然后说是自己做的 特别是本科到master发了十几篇论文的学霸) 网易妈妈也弄了个活动预测冠军拿卡包 也让大家纷纷想进行更加准确的预测 我呢 就是抄袭了包子的预测结果 选了他看好的几个人中的一个(哦 他选的是太子)

  然后还有一点就是 我发现这个比赛还有博彩可以下注的 所以大家上课要好好听讲 认真记笔记 如果你学会了这节课讲的东西 就可以自己去计算赔率 然后根据市场结果购买博彩 就有可能一夜暴富


假设

  言归正传 这里用到的方法跟他们做预测所谓的方法在第一步是一样的 所以那种预测还是很有参考价值的 但是首先我们得做几个假设:

  1. 每场比赛中任何俩个卡组交战胜率是固定的

  2.每位选手都足够聪明

  对于第一点假设是比较好成立的 这个假设不是说冰法打蓝龙德胜率是固定的 首先在这个赛制下比赛卡组是固定的 不能修改 所以你不能看见冰法多带两张奶 其次比赛选手是固定的 毕竟每个人玩不同卡组熟练度不同。(看见没有 良心之作 一个句号) 由于这是世锦赛 那么没有道理选手对双方没有足够的了解 因此双方对胜率的判断保持一致

  然后这个胜率可以将很多因素都考虑进去 不止是卡组 选手 还可以是状态 网络情况 心理因素等等

  关于第二点假设 这个吗 好吧 我只能说他们的确足够聪明 不然不会打进嘉年华 但是应该是不会做我下面要说的那一套东西的 但是我们会有一个博弈论的重要结果来阐述我们的结论

  然后这节课做的东西跟《数学系炉石专业毕业论文(三)》讨论的问题很像 但是更加简单 如果你听懂了这节课 建议去读读那篇文章


  征服

  我们首先跳过ban的环节 来看看一场征服四的比赛会发生什么 当然也可以是征服一 征服二 征服三

  首先 双方各选择一个职业出场 gameover后1:0 然后换职业 除非一方拿了三分才没有选择职业的能力。那么 问题来了 在一场征服比赛中 有必要战略性放弃一场比赛吗 比如我明知a卡组打对面都好打 非要选择打对面都不好打的b卡组 也许有人会说反正b卡组也要跑 但是我想这是没有必要的 我的感觉就是三打四总比四打四好打 不过我也不想尝试去证明这一点(没空) 也不知道能不能证出来 所以严谨而言 我们把它作为第三个假设:

  假设3 每一场对局中 双方都想极大化自己的胜率

  不过有一种情况 就是说一个拿到了赛点 那么这个时候不考虑心理因素(这堂课将不会考虑这个复杂的因素 当然也可以考虑 毕竟只是改变胜率 但会让整个分析非常复杂) 这时落后的玩家先后用哪个职业没有影响 所以也不妨碍我们这个假设下的结果

  那么问题就很简单的 这场比赛可以看成一连串的矩阵博弈(好像是叫什么序惯博弈) 根据矩阵博弈的结论 每一局必存在一个纳什均衡 在大多数情况 这个纳什均衡是混合的 也就说选手以某个概率掏出某个职业。在纳什均衡下 每位选手获得一个固定的胜率 因此以固定的概率进入下一个博弈 最后通过简单的加法和乘法就可以算出双方选手的胜率。为了便于理解 画个图说明一下 如果没有图那就是我忘了 我想以大家的聪明才智是可以自己画出图的

  这个图比较简化 因为在每一步选手的职业是个混合策略 因为即使B以概率p1获胜 在下一步他的三个职业是有4种可能的(也有可能某个职业在策略里的比例是0 那就少了相应的一种情况) 把p1乘以那个比例就得到了相应的确定的3职业对4职业的对阵 按照一样的方法往下做就好了


  均衡

  关于均衡这里说几点 很多选手和玩家觉得 假如在某种情况 我的有且只有某个卡组打对面的都是优势 那么我就应该选用这个卡组。其实这是不对的 举个例子 你的萨满打对面的胜率分别是 80% 60% 70% 50.1% 那么你无脑用萨满的结果是对面用打萨满最不劣的职业 你只获得了50.1%的胜率 但是用脚趾头想想 在大多数情况下你都不该只有这个胜率。在混合纳什均衡解下 你会以一个高的概率掏出萨满 然后还有一个小的概率掏别的职业。


  

  下面我们再考虑如何ban

  双方各5个职业 总共只有25种ban的情况 在每种情况下用上面的序惯(好像是贯唉)博弈 你都会得到一个胜率的结果 填到一个5*5的矩阵里 你就又得到了一个矩阵博弈 所以你又会得到一个纳什均衡的解。同样的 大多数情况下 这个解应该是混合纳什均衡 也就是说你是以某个概率ban对面的某个职业 只有特殊情况下才会固定的ban对面某个职业


  随机

  在解完这个问题后 选手应该怎么实现这个问题的解呢 因为他必须以某个概率ban对面职业 在每局比赛中 又是以某个概率掏出一个职业

  首先 我们说明一点 人脑是无法产生随机数的 目前大自然中还没有办法能产生随机数 所以只能用伪随机代替。举个例子就是我们概率实践课上的一个作业 抛硬币正反面来记录 如果你不抛用人脑来做这件事 一般是无法通过随机性检验的 也就是说人脑产生的伪随机数特别差。有兴趣的可以自己去学学这些东西 然后推荐大家去看我写的《数学系炉石专业毕业论文(一)》

  因此 我们必须借助一个好的随机数生成器 比如计算器。在比赛里计算器产生伪随机数 帮助自己做好的选择是可以大大提高比赛胜率的!计算器不该只用来算斩杀哦。

  但是比赛中不允许使用计算器不过没有关系 你可以事先就生成这些随机数 然后在每次需要使用时依次调用就可以了(注意是依次 其实可以是随机的顺序 但是人脑不能产生随机数)。


步骤

  说了这么多 这里用图来总结一下具体的操作步骤

  对于如何用ui来选择职业或者ban 举个例子 比如你以概率0.5选择萨满 0.2选择小德 0.18选择战士 0.12选择术士 那么当ui在0到0.5时用萨满 0.5到0.7用小德 0.7到0.88用战士 0.88到1用术士。当然这个变化规律你得事先定好 总不能落在哪个区间就让那个区间取成萨满吧


  意义

  只要满足我们的假设 然后可以准备的估计每一场对阵的胜率 选手按照我们的步骤来比赛就可以得到理论条件下自己的胜率。但是你会说 如果对手不按你的要求来 不按常理出牌怎么办?没关系 博弈论有个重要的结果:

  只要你按照混合纳什均衡的策略 那么对手的策略不会影响你的收益 也就是说 随便对手怎么ban怎么挑职业 你都会收获一个固定的胜率 对于纯策略纳什均衡 你只会得到一个更高的获胜概率。

  也就是说除非你知道对手会怎么ban怎么出职业 不然你按照我的这个解来是最优的。


  博彩

  对于想赚钱或者卡包的 这个问题要复杂点 因为估计的胜率必须双方都是足够聪明 才会得到解里面的胜率 。但是一旦满足假设 你求出了解 那么你就可以去和博彩给出的赔率计算的概率(赔率的倒数)比较一下 如果赔率低估了 你就可以买 从而获得一个正的期望。数学上的大数定律和中心极限定理会保证 你一直这么做 你会以概率1赚钱 当然概率1的事是可能不发生的。

  当然 理想情况下博彩的赔率会和我给出的解吻合 除非有傻逼喜欢送钱给庄家。


课堂

  别去找第一课在哪 我们学校第一周还在补退选阶段 怎么可能用来讲这么重要的专业课呢!那些没听到课的学生考试挂了不是要怪我咯

  所以第一节课大概是在让学生自我介绍或者给学生解说解说嘉年华比赛吧

官方微信

网上冲浪记事官方微信