今天被玩彩虹六号的朋友邀请算这个概率,在我搜开箱规则的时候看到了这个问题,于是顺手答一下吧。
先澄清一下规则:
Alpha包有一个获取概率,初始设定为2%;如果在一场比赛中获胜,且当前的获取概率为x%,那么将会有x%的概率获取一个Alpha包。如果成功获取Alpha包,则重置获取概率为2%;如果没有获得Alpha包,则将当前的获取概率增加2%;如果在比赛中落败,则不会有机会获取Alpha包,但是依然可以增加获取概率1.5%;如果购买季票,则以上的所有概率额外增加0.3%(2%→2.3%,1.5%→1.8%)。
(举个例子,比如你有季票,并且赢了5场输了2场,在这期间没有拿到包,则此时的获取概率为2.3% + 5*2.3% + 2*1.8% = 17.4%,下一盘如果赢了就有17.4%的概率拿到包)
下面是计算方法。
强调:是精确解,不是随机模拟!
(数学系选手的原则:能算明白就一定要用算的,只有万不得已的时候才用蒙特卡洛模拟)
设玩家的获胜概率为
,我们先定义一个函数
,代表在当前获取概率是
时,获得下一包所需要进行的游戏场数的期望。
很显然,如果
,则只要获胜就必然得到包,所以此时需要的期望场数是
对于
的情形,我们可以使用递推计算,分为三种情况:赢了拿到包,赢了没拿到包,输了。因此我们可以写出
三项分别对应上面的三种情况。
如果是有季票的情况,只需要更改其中的两个参数:
通过这个就可以直接倒序递推,从
开始,倒序推出
时对应的函数值。
而
就是我们所求的总体期望场次(对于有季票的玩家则是
),将其取倒数,就是总体获取Alpha包的概率了。
当然,真的要算的话……用手应该不太行,需要借助程序来算,只需要求出0到1之间精度为0.001的所有函数值即可。
最后的结果如下:
x轴是玩家的胜率,y轴是获取一包平均所需要的场数,蓝线对应有季票,红线对应无季票
在胜率为50%的情况下,获得一个Alpha包,有季票的玩家平均需要玩11.98局,没有季票的玩家平均需要玩13.00局。
在胜率为40%的情况下,获得一个Alpha包,有季票的玩家平均需要玩13.61局,没有季票的玩家平均需要玩14.77局。
在胜率为6