2012-02-25

クリティカルヒットの確率

クリティカルヒットの確率ってどう計算されているのかなーと。一様分布でもいいけどそうすると乱数が偏った時に "出すぎる" とか "でない" という現象が起こってしまうし。ポアソン過程だと思ったらいいのかなーとかと思ってぼんやり考えていたんですが。
放射性元素の時間あたりの崩壊数、一定時間における電話の呼びは離散的確率過程でありポアソン過程として知られている。単位時間に偶発事象が平均して l 回起こる場合に、k 回発生する確率は
P(k) = l**k exp(-l) / k!
ほて、攻撃 10 回(単位回数)に対して 1 回程度発生する crit の発生判定をするとして、 l = 1/10 = 0.1 から P(k) = 0.1**k exp(-0.1) / k! としてやると、
  • 10 回のうち 0 回発生する確率
    P(0) = 1 exp(-0.1) / 1     = exp(-0.1)         ~ 0.90
  • 10 回のうち 1 回発生する確率
    P(1) = 0.1 exp(-0.1) / 1     = 0.1 exp(-0.1)     ~ 0.090
  • 10 回のうち 2 回発生する確率
    P(2) = 0.1**2 exp(-0.1) / 2! = 0.01 exp(-0.1)/2  ~ 0.0045
  • 10 回のうち 3 回発生する確率
    P(3) = 0.1**3 exp(-0.1) / 3! = 0.001 exp(-0.1)/6 ~ 0.00015
となるので、過去 9(=10 - 1) 回の攻撃のうち n 回 crit が発生しており、次に crit が発生する確率は P(n+1) で計算して判定すればいい?のかなーと思ったりした。初回の確率(n=0) P(0+1) が 9%、まあ 10% ぐらいになるので感覚的にもだいたい合っているし。
しかし、実用的には階乗計算はあんまりでかい数を使うとすぐオーバーフローしてしまいますし、そもそも [0,1) の数を何乗もすると値が極端に小さくなるので、"単位回数"はせいぜい 10 回ぐらいになるんでしょうか。過去何回のうち何度出たかみたいなのを記憶するのも割りとアレです。
実際のゲームどうなってるんでしょー

参考文献
  • 中川正雄、真壁利明:確率過程,培風館,2002

0 件のコメント:

コメントを投稿