]> mabinogi (マビノギ) ダメージ計算 memo

mabinogi ダメージ計算 memo

期待値計算

MathML が表示できる環境が必要です。Firefox3とか

分布
σ 2 = 0.0835 Max - Min 2
平均
μ = Min + Max - Min Balance / 100
正規分布確率密度関数 (あるダメージ x が現われる確率を求める関数)
f x = 1 σ 2 π exp - x - μ 2 2 σ 2

基本的な分布はこれで求まるらしい。Max, Min, Balance はそれぞれ最大ダメージ・最小ダメージ・バランス。(Mabinogi Wiki* より)

Max=150, Min=50, Balance=80 の出現確率グラフ

ただし、Min 以下の値や Max 以上の値は丸めこまれるので、Min, Max ぴったりの値がでる確率は上記の関数では求められないし、 実際にはダメージは離散的なので、もうちょい工夫がいる。

正規表現の累積分布関数 (密度関数を積分した関数で -∞ から x までの積分値が求められる)
nd x = 1 2 1 + erf x - μ σ 2

を使って、それぞれのダメージ値に対する確率を求める。erf は誤差関数。ダメージの小数点以下が切り捨てだと仮定すると

Min 出現確率
nd Min + 1
Max 出現確率
1 - nd Max
Min < x < Max の出現確率
nd x + 1 - nd x
上記以外
0

このような条件分けをした関数 p を定義したとき、ダメージ期待値は

E [ X ] = i = Min Max x i p X = x i

になる。(境界ってこれでいいのかな?)