正規乱数の発生
 パーセント点を求める戸田の公式の応用
     Last modified: May 15, 2002
# 正規分布のパーセント点を求める戸田の公式を用いて正規乱数を発生する
function n_rand() 
{
   return toda(rand())
}

function toda(p,     retv, y, e, f, g, h, i, j, k, l, m, n, o)
{
   e =  0.6936233982e-12
   f =  0.3657763036e-10
   g = -0.3231081277e-08
   h =  0.8360937017e-07
   i = -0.1045274970e-05
   j =  0.5824238515e-05
   k =  0.6841218299e-05
   l = -0.2250947176e-03
   m = -0.8364353589e-03
   n =  0.3706987906e-01
   o =  1.570796288
   y = -log(4*p*(1-p))
   retv = sqrt(((((((((((y*e+f)*y+g)*y+h)*y+i)*y \
          +j)*y+k)*y+l)*y+m)*y+n)*y+o)*y)
   return (p < 0.5) ? -retv : retv
}

・ 直前のページへ戻る  ・ E-mail to Shigenobu AOKI