欢迎光临散文网 会员登陆 & 注册

一个数值问题

2020-04-29 09:16 作者:土豆滴滴答答  | 我要投稿

此前有个朋友问了我这个问题,现在想小结一下:

有个游戏角色被动技能是每次攻击获得1层buff,5层buff时攻击必定暴击,暴击后buff清零,此外角色每次攻击还有5%的默认暴击率,正常触发的暴击同样会导致buff清零,请问这个角色每次攻击的暴击率期望值是多少?

当然,这个问题的一个假设是这个游戏角色一直在攻击,没有间断。

我当时的回答是这样的:

设任意时刻,触发暴击的概率是期望一样的,为x:
1 假设此前5回合都不暴击,那么本次暴击的期望是(1–x)^5*1
2 否则,暴击的概率是0.05,期望是(1-(1–x)^5)*0.05

显然,x=(1–x)^5*1+(1-(1–x)^5)*0.05
5次方程没有公式解,利用二分法求0到1之间的根即可

这个解法不能直接计算,但是可以得到关于x的方程。

考虑等价无穷小:

(1–x)^5≈(1-5x);(1-(1–x)^5)≈5x

上述方程简化为:

x=(1-5x)+5x*0.05
5.75x=1
x=4/23=0.174

直观上来说,这个数值应该至少为1/6,因为每5次不暴击,第六次就必然暴击。此外,最多比1/6只能多0.05,即5%的默认暴击率。

1/6=0.16666……,而近似解0.174在合理范围。

最后,就可以得到期望x和暴击率,以及次数的一个近似线性关系,这个线性关系对于游戏设计显然是有帮助的。

一个数值问题的评论 (共 条)

分享到微博请遵守国家法律