一、玩法介绍
这期我们模拟并分析一下三国杀OL最经典的抽卡活动——武将包和皮肤包。这两个是游戏内获取渠道非常广泛且价值相对较低的资源,首充 6 元的玩家每天都可以免费开启一次武将包,而且通过排位奖励,军典奖励及消费充值返利等方式都能白嫖一些,可以说
是三国杀中少数的平民活动之一了。目前游戏内的已经是升级后的版本,完善了卡池分级机制,优化了抽奖道具,取消了复合包改为了单抽和五连抽选项,同时武将包新增五连抽,五十连抽以及五百抽 UP池分级保底机制,皮肤包新增五连抽,三十连抽分级保底。
看上去似乎变得越来越良心了?但笔者在《打破定势的黑市买马问题》一文中提到过,有时直观的数值是会欺骗玩家的直觉的,事实是否真的如我们所见,只有调查过后才有发言权,本文笔者依旧只借助 Excel 来模拟实现抽奖过程,带各位逐步分析其抽奖原理和预期产出。
按照惯例还是在此展实一下官方玩法介绍:
武将包: 五连保底规则:点击五连时,必定获得一个稀有及以上武将。 50抽史诗保底规则:若前49次均未获得史诗及以上武将,则第50次必定获得史诗及以上武将。 500抽UP池保底规则:若前499次均未获得UP池武将,则第500次必定获得UP池武将。UP池内为随机2个史诗或传说武将,UP池将定期更换。 武将包单抽概率普通武将68.53%、稀有武将28.65%、史诗武将2.76%、传说武将0.06%;保底综合概率普通武将62.00%、稀有武将34.49%、史诗武将3.29%、传说武将0.22%。
游戏内武将包抽奖界面截图
皮肤包: 皮肤包单抽概率:普通皮肤70.7%、稀有皮肤23.57%、史诗皮肤4.24%、传说皮肤1.02%、限定皮肤0.47% 五连保底规则:点击五连时,必定获得一个稀有及以上皮肤 30抽史诗保底规则:若前29次均未获得史诗及以上皮肤,则第30次必定获得史诗及以上皮肤
游戏内皮肤包抽奖界面截图
只看规则武将包和皮肤包的玩法别无二致,甚至 UI 界面都是一个模板,官方还贴心的附上了各品质武将,皮肤概率,最珍贵的传说品质武将综合概率高达 0.22%,传说皮肤与限定皮肤的爆率更是达到了惊人的 1.49%!比我们之前模拟过的翻翻乐和祈愿台活动的终极大奖概率不知道高了多少倍,那么官方公布的概率是否符合实际情况呢?虽然该活动很多玩家参与,但想必也少有玩家会考虑此事,更鲜有玩家会一次抽个五百抽以上来检验官方公布数据的真实性,何况五百抽也只是一个很小的数据量,得到的结果仍有较大的波动性。既然如此,我们就借助 Excel 按照官方公布的概率模拟多次五百抽来反推,以验证其真实性。
二、分析与模拟步骤
Step1:概率分布
通过官方公布的数据可知,武将包将池共有 289 个武将(20级将池),每个武将都被赋予了一定权重,直观来看品质越高的武将权重越小,最廉价的普通武将最高占到 3089 份权重,而最极品的传说武将有些甚至只有 1 权重,经计算总权重为 200141,那么想一发入魂最珍贵的司马徽或者士燮的概率等于 1/200141 ≈ 0.000005,比“翻翻哭”直接翻出当期主武将的概率还低。
模拟开始之初笔者便遇到了此次模拟工作的第一个难题,如何将这张庞大的武将概率表导入到 Excel 中?以往笔者都是手动录入奖品及其概率,但这次共 289 个数据再一个个手敲显然不现实,幸好夸克推出了图片转 Excel 的功能,直接将表格图片导入便可转换成 Excel 文档,十分方便快捷,且经过对比发现数据都是正确的,只可惜该功能后续需要开通会员。
庞大的武将权重表,官方设计该表时应该也是花了不少功夫
而皮肤池中的皮肤数量就更多了,目测有上千个,估计官方也懒得再像武将池一样设计一个权重表,所以就只罗列了皮肤名称,与按各品质皮肤的出货概率,笔者个人猜测除了皮肤册中的皮肤,其它同品质皮肤权重都是一样的,品质越高权重越小,皮肤册皮肤较其它同品质皮肤更小,本次我们就不再对皮肤包抽取进行具体的模拟。
Step2:武将抽取函数
紧接着又迎来下一个难题,如何将这些奖品按权重加入到 Excel 函数中?看过笔者往期模拟文章的朋友应该知道,之前奖品数量少时我们都是将数据直接录入到 IF/IFS 函数中,这样很直观也方便修改,但是奖品数量一旦多起来再用这种方法就不现实了,函数也不支持这么多参数。于是,本次我们改变策略采用索引法,及利用 OFFSET+MATCH 函数对原表直接索引判定。制定好策略后,本次大方向上仍采用“圆盘法”用随机数判定抽中的奖品,在原表格基础上单独列出两列,一列存储 [ 1,200141] 的随机数,一列存储武将权重的累加和,单次抽奖只需比较当前随机值在哪个武将的权重区间即可判定掉落。
但此时又有一个问题,我们希望随机数小于等于某一武将对应的权重累加和,大于上一武将的累加和时掉落该武将,但 MATCH 函数在匹配小于等于条件时要求索引域序列倒叙排列,而权重累加和显然是正序的,这时我们就需要运用逆向思维,将 MATCH 函数中的索引项与索引域取负值后再进行匹配,便可得到我们想要的结果。函数公式如下:
=OFFSET($A$1,MATCH(-$D$294,-$F$1:$F$289,-1),0)
Step3:加入分级保底
到此为止单抽武将包的模拟已经完成,玩家的每日一抽也就是这个过程,但是版本升级后,官方加入了分级保底机制,不同于上期我们讲到的概率叠加“伪保底”,该保底是玩家一定次数不出货后必定会在下一次得到对应品质武将,而在此之前的各项概率不变。为此,我们需要在原表基础上再列一列来存储武将的品质,然后将稀有武将与史诗武将单独做成两个表格,用于保底武将的索引。
对于五次稀有保底,我们只需从第五个单元格开始之后每个单元格都用 COUNTIF 函数计算前四次掉落的是否都为普通武将,若是则从稀有武将库中按权重掉落一个稀有武将作为保底。对于五十次史诗保底,在五次保底基础上我们从第五十个单元格及之后检测前 49 个单元格是否没有史诗品质与传说品质武将,若是则从史诗武将库中按权重掉落一个史诗武将作为保底。最后对于五百抽 UP 池保底,由于每期保底武将不一样,且官方并没有公布 UP 池武将抽取规则,在此就不专门设计,只展示五十格之后的掉落函数公式:
Step4:重复返还灵宝计算
武将包和皮肤包还有一项重复返还机制,即玩家抽到重复的武将或皮肤后会分别返还名为灵宝,朱砂的两类消耗道具,可用与直兑某些武将和皮肤,现在还会不定期上新一些限时兑换武将或皮肤,周年庆的黄承彦不知道各位是否已经换到,如果还没有又想通过开武将包的方式获取,不妨继续看下去。幸好官方在每一个武将后面都标上了该武将的重复返还灵宝数,这样我们就可以在已经索引到的武将上用单抽武将包的索引方法找到该武将对应的灵宝数和品质,最后用 COUNTIF 函数统计灵宝总数,及稀有品质和史诗品质武将数。灵宝返还函数公式如下:
=OFFSET($D$1,MATCH(A282,$A$2:$A$289,0),0)
Step5:运行结果展示
在此我们先展示13次五百抽的模拟实况:
可以看到我们的运气还是不错的,中间连续三次抽出了传说品质武将,最后 13 次模拟,累计 6500 抽,共抽到 6 个传说品质武将,重复返还灵宝数在 3400 左右,那么模型是否准确呢,我们再用 VBA 模拟 100 次并求一下各项平均值:
100次模拟结果及 VBA 代码
反推得到的模拟的结果分别为 32.49% 与 3.79% 与官方公布的 34.49%与 3.29% 误差均在 ±2% 之内, 证明官方给出的综合获奖概率还是可信的,而模型也是正确的,此处由于没有模拟 UP 池,故未计算传说武将的综合爆率,但可以合理推断该概率应该也是游戏官方自己模拟大量次数后得到的结果。
三、结果分析
这一结果是否在各位的意料之中呢,在开通 20 级将池,且所有武将都已拥有的前提下 500 抽平均返还灵宝 3344.73 个,平均每五连抽返 33.45 个,但是为了减少个别极值对模拟结果的影响,我们又计算了中位数作为实际五连抽中最真实的结果,即玩家一次五连抽返还的灵宝大概在 29 个左右,结合笔者自身经历与一些网络调查,该结果还是很可信的。当然,模拟中我们没有加入 500 抽的 UP 池保底,实际情况会比我们的模拟结果更好一些,但不会差别太大。关于皮肤包的分析在此就不多说明,按照官方概率大家可自行计算各品质出货期望,但是开皮肤包时对皮肤册皮肤不要抱太大期望,官方也没有公布概率,但肯定是一个相当小的数,结合笔者自身经历与网络调查,限定册子皮的概率应该与传说武将概率相近。
最后,通过模拟结果我们容易注意到张绣作为传说品质武将出货率较高,这是因为在一众权重仅个位数的传说武将中,张绣的权重达到了异乎寻常的 70,这也是为什么我们经常能在论坛或评论区看到苟托张绣的玩家,但鲜有苟托其它武将的,特别是司马徽和士燮这种权重为 1 的武将,真能抽到的玩家绝对是万里挑一的佼佼者。
雄长一州*士燮
四、结尾
还是感谢各位能耐心看完本文,希望本文能让你对三国杀OL的武将包&皮肤包抽奖机制有了更深入的了解,如果对于本次分析的主题你有更多想法或建议欢迎在评论区分享讨论。另外对模拟抽奖或者各类抽奖机制感兴趣的朋友也欢迎关注笔者的机核网账号,后续会持续更新抽奖机制,游戏设计及游戏分享等方面的内容,那么我们下期再见。