http://www.sat.t.u-tokyo.ac.jp/~omi/random_variables_generation.html を参考に作りました。

ソースコード sdlab_uniform

[0, 1)の一様分布の乱数を出力する関数。

double sdlab_uniform()
{
  double ret = ((double) rand() + 1.0) / ((double) RAND_MAX + 2.0);
  return ret;
}

ソースコード sdlab_normal

平均mu、標準偏差sigmaの正規分布の乱数を生成する関数。

double sdlab_normal(double mu, double sigma)
{
  double  z = sqrt(-2.0 * log(sdlab_uniform())) *
    sin(2.0 * M_PI * sdlab_uniform());

  return mu + sigma * z;
}

  添付編集
Last-modified: 2015-03-01 (日) 10:38:29 (3509d)