Orion's Studio.

简单实用的胜率算法模型,及在王者荣耀中的应用

2021/03/24

首先,先介绍一下王者荣耀,这块有三层胜率:

  1. 全分段
  2. 巅峰分 1350+
  3. 巅峰排名前 500

前两者的数据公开在王者营地,最后一项的数据在苏苏的荣耀助手

理论上,数据的采样要取决于自己的实际段位,我实际段位在第二个阶段,但这阶段数据只有英雄没有出装,所以出装的数据我还是采用了第三个阶段的。

回到我们的题目,其实这个只是来源我的一个顿悟,就正常情况下我们查询胜率必然是直接降序看,但却忽略了一个很关键的因素:

出场率

胜率的本质上:选择该英雄时的获胜概率,在英雄出场率低时,偶然性就高,所以脱离出场率看胜率是片面的。

那我们反过来思考下,不选择该英雄的失败率 是不是更可以代表这个英雄的 胜率 呢?

把这个思路再扩展下:

装备

一般想要找到最佳出装的思路,肯定是按照胜率倒排选 6 件;但实际上,这几件出装的出场率一般都比较低,数据相对不够有说服力,所以我们把出场率也考虑进去

那么我们反过来思考,不出某件装备时胜率有多少,如果特别低的话,是不是就说明务必要出了,那我们假设有装备 A,则:

不出A的胜率 = (英雄总胜率 - A出场率 * A胜率) / (100% - A出场率)

比如芈月,整体胜率 52%,噬神之书出场率 80%,噬神之书胜率 56%,可以计算出:不出噬神之书芈月的胜率为 36%

可见非常的低,所以可以认为噬神之书是芈月不得不出的一件装备

那么再来一个逻辑题,100% - 不出某件装备的胜率 = ?

我的直觉告诉我这个数据很可靠,但是我的小脑袋瓜理解不了这个概率是什么

以下的代码就是从数据网站计算该概率的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
function getPer(per = 50) {
[
...document.getElementsByClassName('vxe-table--body')[3].children[1]
.children
]
.map((child) => {
const arr = [...child.children];
const img = `padding: 10px 10px;background-image: url(${arr[1].children[0].children[0].src});background-size: contain;background-repeat: no-repeat;color: transparent;`;
const perUse = Number(arr[4].children[0].children[0].innerHTML);
const perWin = Number(arr[5].children[0].children[0].innerHTML);
const perOppoLose =
(per - (perUse * perWin) / 100) /
(1 - Math.min(perUse, 99.99) / 100);
return {
img,
p: perOppoLose
};
})
.sort((a, b) => {
if (a.p < b.p) {
return -1;
}
if (a.p > b.p) {
return 1;
}
return 0;
})
.forEach(({ img, p }) => {
console.log('%c+', img, `${(100 - p).toFixed(2)}%`);
});
}

我大致计算了几位我准备使用英雄出装的该概率排序,准备排位实践下:

  • 中路
    • 杨玉环:巫术法杖 67.18% 博学者之怒 62.97% 虚无法杖 51.90% 圣杯 49.63% 炽热守护者 46.76% 回响之杖 46.38% 秘法之靴 45.97%
    • 嫦    娥:时之预言 64.32% 博学者之怒 52.24% 巫术法杖 51.36% 噬神之书 49.68% 炽热守护者 47.43% 虚无法杖 47.06% 秘法之靴 46.12%
    • 西    施:痛苦面具 52.24% 凝冰之息 49.89% 极寒风暴 48.76% 噬神之书 48.35% 抵抗之靴 47.98% 魔女斗篷 47.85% 辉月 47.46% 虚无法杖 47.44%
    • 武则天:虚无法杖 52.21% 博学者之怒 51.53% 痛苦面具 48.99% 噬神之书 48.95% 辉月 48.75% 冷静之靴 48.55% 贤者之书 48.27% 秘法之靴 48.04%
    • 弈    星:巫术法杖 56.38% 博学者之怒 52.28% 虚无法杖 50.14% 噬神之书 49.68% 痛苦面具 49.24% 日暮之流 48.60% 秘法之靴 48.58%
    • 周    瑜:痛苦面具 69.63% 噬神之书 53.58% 极寒风暴 50.82% 秘法之靴 49.68% 虚无法杖 48.55% 凝冰之息 48.47% 辉月 48.29 日暮之流 48.25%
  • 发育路
    • 李元芳:无尽战刃 67.20% 泣血之刃 63.46% 逐日之弓 52.36% 破晓 50.16% 抵抗之靴 48.73% 暗影战斧 47.97%
    • 后    羿:无尽战刃 71.20% 逐日之弓 56.87% 闪电匕首 53.18% 破晓 51.20% 泣血之刃 50.39% 末世 48.85% 抵抗之靴 48.14%
    • 狼    狗:(无尽战刃有点怪)宗师之力 70.18% 破晓 67.96% 泣血之刃 63.10% 抵抗之靴 51.10% 闪电匕首 49.08% 逐日之弓 48.54% 名刀·司命 48.19%
    • 鲁    班:无尽战刃 99.99% 破晓 54.26% 泣血之刃 54.25% 闪电匕首 50.87% 末世 48.86% 暗影战斧 48.27% 破军 48.12% 宗师之力 47.97%
    • 伽    罗:无尽战刃 73.22% 破晓 55.20% 影刃 51.82% 泣血之刃 51.33% 逐日之弓 51.23% 闪电匕首 50.38% 末世 49.04% 抵抗之靴 48.95%
    • 阿    离:无尽战刃 72.92% 末世 63.44% 逐日之弓 58.81% 破晓 54.85% 抵抗之靴 49.99% 影刃 49.59% 暗影战斧 49.46%
    • 狄仁杰:无尽战刃 69.10% 末世 57.96% 破晓 56.39% 逐日之弓 54.18% 泣血之刃 51.27% 魔女斗篷 50.23% 闪电匕首 50.10% 不祥征兆 49.99%
  • 游走
    • 大    乔:极寒风暴 51.76% 极影 49.72% 魔女斗篷 48.76% 救赎之翼 46.10% 抵抗之靴 45.72% 不祥征兆 45.46% 凝冰之息 45.06%
    • 太    乙:极影 52.89% 魔女斗篷 51.88% 极寒风暴 51.00% 抵抗之靴 49.58% 霸者重装 49.49% 奔狼纹章 49.35% 不祥征兆 49.06%
    • 蔡文姬:圣杯 73.78% 近卫荣耀 56.93% 博学者之怒 54.84% 冷静之靴 50.77% 时之预言 50.21% 贤者之书 49.95% 极影 49.52% 救赎之翼 49.14%
    • 鲁    大:极寒风暴 60.37% 极影 53.19% 魔女斗篷 52.55% 抵抗之靴 50.74% 奔狼纹章 50.51% 霸者重装 49.73% 冷静之靴 49.46% 不祥征兆 49.46%
    • 鬼谷子:极寒风暴 56.01% 抵抗之靴 54.63% 极影 53.81% 奔狼纹章 51.25% 魔女斗篷 50.83% 近卫荣耀 49.69% 救赎之翼 49.55% 霸者重装 49.53%
    • 牛    魔:不祥征兆 53.40% 近卫荣耀 53.36% 抵抗之靴 52.30% 魔女斗篷 51.44% 救赎之翼 50.30% 极寒风暴 50.25% 永夜守护 50.20%
    • 东    皇:霸者重装 58.63% 极影 52.05% 极寒风暴 51.30% 奔狼纹章 51.15% 永夜守护 50.79% 抵抗之靴 50.74%
    • 刘    禅:极寒风暴 69.72% 极影 57.69% 魔女斗篷 52.04% 永夜守护 52.00% 不祥征兆 51.11% 奔狼纹章 50.97% 冰痕之握 50.59% 霸者重装 50.55%
    • 孙    膑:圣杯 59.12% 极影 53.33% 极寒风暴 53.27% 魔女斗篷 52.55% 近卫荣耀 52.42% 不祥征兆 52.06% 救赎之翼 51.57% 抵抗之靴 51.47%

英雄

将这个思路拓展下,对英雄也采用不选取时失败的概率来计算

  • 对抗路:马超、元歌、木兰、芈月、白起(、司空震
  • 中    路:嫦娥、玉环、火舞、西施、周瑜(、武则天、貂蝉、司马懿、婉儿、奕星
  • 发育路:阿离、后羿、元芳、鲁班、狄仁杰(、蒙犽、伽罗、狼狗
  • 打    野:露娜、老虎、露露、阿古朵、刘备(、雅典娜、镜、阿珂、云中君
  • 辅    助:大乔、鲁大、太乙、盾山、牛魔(、蔡文姬、鬼谷子

这不就是版本答案嘛?

CATALOG
  1. 1. 出场率
  2. 2. 装备
  • 英雄