诸君可还记得曾经在老夫这惊鸿一瞥的数据帝!那个为无限火球法写模型谈最佳的那个?不知道?……点进去点进去!炉石无限流火球法 完美卡组倾情讲解(不知道什么的老夫最不Like的了) 如今,他又再度发表了文章,似乎是对现今版本下的炉石对之前的数据进行了改动,究竟如何?让老夫引领诸君去看一看! 之前的一篇文章:[[无限火球法]模型下的最优卡组(11/10 更新)(已低保,胜率61%)]篇幅较长,所建模型比较适合刻画面对宇宙牧青玉德等偏中慢速的卡组,为了构建一个适合刻画应对快攻卡组的模型,我考虑了关于费用,苟活牌的价值,随机额外法术的概率等因素,内容变化很大,因此我选择另开一个帖子。 ps:如果大家没了解过之前文章的内容且感兴趣的话,十分推荐先去阅读,这将很可能有助于理解这篇文章的内容。 一. 模型 OoO 卡组 deck:30张卡,每张卡仅由两个属性所决定(类别,费用),只有部分牌(即在计算 finalIdx 时需要考虑的牌)考虑费用 OoO 牌库 library:卡组的一个样本实例,顺序随机,当模拟生成牌库后,卡牌的相对次序仅在打出秘法学家的时候可能发生改变(将下一张牌与剩余牌库里的一张奥秘位置调换,从而将检索视为抽牌的特殊情况) OoO 额外法术:除宝典外套牌之外的法术(或者随从),如魔典,雕文,共鸣,鬼隐巫师等 OoO 固定额外法术:从费用角度上看稳定性较强的额外法术,如雕文,共鸣,鬼隐巫师等 OoO 随机额外法术:从费用角度上看稳定性较弱的额外法术,如宝典,魔典等 OoO 条件1:至少1个巫师学徒,1个大法师,模拟幻影熔岩镜像和另一个巫师学徒总数不少于 3 OoO 条件2: ( 1个宝典和至少3个额外法术) 或 2个宝典 首先产生一个随机数(范围0-1) randNum 要求概率 P(随机额外法术能给到ok的法术数量 >= 6 - 固定额外法术数量)>= randNum,相关概率的计算思路可以参考前文关于宝典概率的计算,这里不再详细赘述 OoO 最后一个key牌的位置 lastKeyIdx:能满足条件 1 和条件 2的牌库的前 n 张牌,n 中的最小值为 lastKeyIdx OoO 过牌:能让你从牌库抽牌的各种机制。 1. 简单的抽牌:大哥,奥数智慧,工程师学徒等 2. 滤牌:秘法学家,如果剩余牌库还有奥秘,则打出秘法学家时能从剩余牌库中随机抽取一张奥秘 2. 苟活牌:苟活牌实际上并不抽牌,但苟活的一回合能让你多抽一张牌,如冰箱,冰环,暴风雪,末日等 3. 任务奖励:做完任务的一回合能抽 1 张牌 4. 硬抗:30点血量能换来的回合数,只考虑前期,后期情况一律认为无法硬抗,默认是前期是前 4 回合,即前1-4回合可以不依赖任何苟活牌活下去 5. 起手:先手3张后手4张,平均 3.5 张 OoO 苟活牌 1. 1级苟活牌:冰箱 2. 2级苟活牌:冰环暴风雪 3. 3级苟活牌:末日冰锥冰甲等 OoO最优过牌:在当前剩余费用下,考虑当前手牌,按费用最大化利用的策略进行过牌,并对新过到的牌(因为可能费用没有用完)继续执行过牌计算,直到无法过牌为止 OoO阶段及其转移规则: 1. 初期(1-4回合):第一回合默认挂任务,第2-4回合直接最优过牌,第1-3回合停留在阶段1,第4回合的结束时进入阶段2 2. 预冰1:若手牌里有3级苟活牌则打出,然后进行最优过牌,并在回合结束时进入阶段3;否则直接进入阶段4 3. 预冰2:若手牌里有3级苟活牌则打出,然后进行最优过牌,并在回合结束时进入阶段4;否则直接进入阶段4 4. 冰系控场:若手牌里有2级苟活牌则打出,然后进行最优过牌,停留在阶段4;否则直接进入阶段5 5. 冰箱苟活:若手牌里有冰箱则打出,然后进行最优过牌,停留在阶段5;若手里有秘法学家且牌库里有冰箱且打出秘法学家检索到冰箱,则打出冰箱,然后进行最优过牌,停留在阶段5;否则进行最优过牌,然后进入阶段6 6. 极限:记摸到的牌数+1(任务奖励)为 finalIdx 相应的阶段转移图如下 OoO 胜率:若 finalIdx >= lastkeyIdx,则胜率 = 100%,否则胜率 = e ^ ( ( lastKeyIdx - finalIdx ) / 2 ),具体曲线如下 OoO 根据经验至少得含有的牌(共25张) 二. 模拟 !!!胜率越接近实际说明模型越能反应实际情况,胜率越高说明在相对意义下在此模型内卡组越好!!! 用数字代表卡牌类型 0:任务 1:巫师学徒 2:熔岩镜像 3:模拟幻影 4:固定额外法术,如雕文,鬼隐巫师等 5:秘法宝典 6:大法师 7:稳定过2张牌的牌,即大哥,奥术智慧 8:稳定过1张牌的牌,如工程师学徒,血法师,战利品等 9:秘法学家 10:2级苟活牌,即冰环,暴风雪 11:3级苟活牌,如末日,冰锥,冰甲等 12:1级苟活牌,即冰箱 13:随机额外法术,如呓语魔典,秘法宝典等 模拟过程如下 1. 卡组就表示为 2x30 的矩阵,如 0 0 1 0 1 0 2 0 2 0 3 0 4 0 5 0 5 0 5 0 6 0 6 0 7 3 7 3 7 3 7 3 8 2 8 2 8 2 8 2 8 2 8 4 9 2 10 3 10 3 10 6 10 6 11 2 12 3 12 3 (该卡组示例不含有随机额外法术) 矩阵元素( i, j )代表卡牌类型为 i,费用为 j 2. 牌库也表示为 2x30 的矩阵,与卡组这个概念的区别主要体现于行的顺序随机 3. 生成一个随机数(用于条件 2 的判定) 3. 从牌库以及 3 中的随机数可以计算得到 lastKeyIdx(新的条件 2 考虑了宝典等随机额外法术的概率问题) 4. 从牌库可以计算得到 finalIdx,具体过程为起手摸牌,进入阶段一,按阶段转移规则直至极限 5. 依据 lastKeyIdx 和 finalIdx 计算得到胜率 6. 重复2-5步骤,可计算出模拟的平均胜率 三. 实验结果与分析 为了表述方便,卡组表示为一个有 13个元素的数组,如[ 2 2 1 1 3 2 4 6 1 4 1 2 0 ],第 i 个元素的值表示该类卡牌的张数,具体的费用信息隐藏 根据经验,各元素的最小值为[2, 2, 1, 1, 2, 2, 4, 2, 1, 3, 2, 2, 0] 以下各实验的模拟次数均为 8192 次 1. 低保卡组 卡组:[2, 2, 1, 1, 2, 2, 4, 4, 1, 4, 3, 2, 1] 相对最小值:[0, 0, 0, 0, 1, 0, 0, 2, 0, 1, 1, 0, 0] 胜率:45.9% 分析:数值符合预期,能体现出应对快攻的劣势,说明模型具有一定的合理性 2. 魔典换鬼隐巫师(随机额外法术换固定额外法术) 卡组:[2, 2, 1, 1, 3, 2, 4, 4, 1, 4, 3, 2, 0] 相对最小值:[0, 0, 0, 0, 1, 0, 0, 2, 0, 1, 1, 0, 0] 胜率:46.9% 分析:胜率相比实验 1 略微提高,说明固定额外法术的期望表现要好于随机额外法术 3. 相对实验2,冰锥换过牌(2费) 卡组:[2, 2, 1, 1, 3, 2, 4, 5, 1, 4, 2, 2, 0] 相对最小值:[0, 0, 0, 0, 1, 0, 0, 3, 0, 1, 0, 0, 0] 胜率:52.9% 分析:模型中在阶段2和阶段3已经去模拟了3级苟活牌的作用,但在有2张3级苟活牌的情况下,2费过牌带来的受益还是显著高于3级苟活过牌的。换句话说,3 张 3 级苟活牌相对意义上说是过剩的。 4. 相对实验3,末日换过牌(共 1 张 4 费的 424) 卡组:[2, 2, 1, 1, 3, 2, 4, 6, 1, 4, 1, 2, 0] 相对最小值:[0, 0, 0, 0, 1, 0, 0, 4, 0, 1,-1, 0, 0] 胜率:50.5% 分析:再一次将 3 级苟活牌换成低劣的4费过牌,胜率相对实验3下降了,说明在仅有 1 张3级苟活牌的情况下,4费过牌带来的受益显著低于3级苟活过牌的。换句话说,1张 3 级苟活牌相对意义上说是过少的。从实验 3 和 4 来看,3级苟活过牌带2张是比较合理的,可以 2 末日,也可能可以 1 末日 + 1 冰锥 5. 相对实验3,鬼隐巫师换过牌(共 1 张 4 费的 424) 卡组:[2, 2, 1, 1, 2, 2, 4, 6, 1, 4, 2, 2, 0] 相对最小值:[0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 0, 0] 胜率:54.7% 分析:模型中已经考虑了过牌的费用问题,但即便如此,将 1 张固定额外法术换成 1 张较低劣的4费过牌还是带来了胜率的略微提升,但幅度并不明显,说明放弃额外法术带来的受益在制约着过牌的受益。 6. 相对实验5,末日换过牌(总共有 2 个 4 费的 424) 卡组:[2, 2, 1, 1, 2, 2, 4, 7, 1, 4, 1, 2, 0] 相对最小值:[0, 0, 0, 0, 0, 0, 0, 5, 0, 1,-1, 0, 0] 胜率:50.0% 分析:从实验 5 可以推出过牌收益可能还没达到极限,因此尝试将一张末日换成 4 费过牌。终于,我们看到了卡组胜率的下降,说明一方面过牌带来的收益更小了,另一方面这也影响了苟活能力。看来无脑过牌是不可取的,但带 1 张 424 是不错的选择。 四. 总结 1. 新的模型更好地刻画了面对快攻卡组时的实际情况 2. 过牌带来的受益并不是一直显著的 3. 1 张 424 能继续压榨过牌的收益,2 张 424 就已经超出了过牌的负荷 4. 2 张 3 级苟活过牌是一个合理的选择 5. 固定额外法术的期望表现好于随机额外法术 6. 1 张额外法术换成低劣的 4费过牌 依旧存在收益 五. 模型下最优卡组 依据实验 5 对卡组进行构筑(2末日可能可以考虑换成末日+冰锥) 卡组代码:AAECAf0EBrQC7QW4CMHBAtDBArnRAgyKAcAB+wGcAskDqwTLBOYE+AeSrAKYxALaxQIA 六. 后话 不管诸君如何选择,反正老夫是选择要玩的了……
PS:这不是你要的结果?请在左上搜索栏中输入关键词搜索 |