DPS予想2

2日前の日記で、総ダメージの予想値を予め計算しておき、実際の実験と比較するというのを書いた。その計算部分について書いてみる。

総ダメージの予想値の計算法

チェインをセイントスマッシュ(以下SS)のみセットしていたので、通常攻撃が一定間隔で出て、その間にSSが挟まったり、無かったりという感じになる。

その場合SSの出る回数は、統計学用語で言うところの「二項分布」というものになる。

二項分布 - Wikipedia

それで、ウィキの途中よく分からない部分は飛ばして下の方を見ると「95%信頼区間」と言うのがある。「95%の確率でその範囲に収まります」という意味らしい。

なので、この式を使ってプログラムを書いてみるとこんな感じ

sec=2*60   # 実験時間 (sec)

d1=113     # 通常攻撃ダメ
d2=263*2   # SSダメ
q=0.15*1.3 # SS 発動率
sp=0      # 攻撃速度上昇

n= (sec/(1.3*13/16/(1+sp*0.01))).to_i

e=Math::sqrt(q*(1-q)/n)

tmin95=(d1+(d2-d1)*(q-2*e))*n
tmax95=(d1+(d2-d1)*(q+2*e))*n

dmin95=tmin95/sec
dmax95=tmax95/sec

print "総ダメ95%信頼区間: #{tmin95.to_i} - #{tmax95.to_i}"