|
|
◆ zignorm()
| double zignorm |
( |
int(*)() |
iurand, |
|
|
double(*)() |
durand, |
|
|
double |
mu, |
|
|
double |
sigma |
|
) |
| |
正規分布に従う乱数の生成 (Ziggurat法)
- 目的
- 正規分布 N(μ, σ^2) に従う乱数を生成する.
与えられた一様乱数生成関数を使用して生成した一様乱数をZiggurat法により正規乱数に変換する.
- 戻り値
- 正規乱数.
- 引数
-
| [in] | iurand | 整数型の一様乱数を生成する関数で, 次のように定義すること. int iurand(void)
{
return 整数型の一様乱数;
}
下位7ビットまたは8ビット(init_zigexp()で指定)のみが使用される. |
| [in] | durand | 区間[0, 1)の実数型の一様乱数を生成する関数で, 次のように定義すること. double durand(void)
{
return 実数型の一様乱数;
}
これを使って生成された実数乱数が指数乱数に変換される. |
| [in] | mu | 正規分布 N(μ, σ^2) のパラメータμ(平均). |
| [in] | sigma | 正規分布 N(μ, σ^2) のパラメータσ(標準偏差). |
- 注
- 本関数を呼び出す前にinit_zignorm()により初期化しておかなければならない. 初期化を行わずに本関数を呼び出した場合, 既定値を使って自動的に初期化を行う.
- 参考文献
- 四辻哲章「確率分布乱数生成法」第2版, プレアデス出版, 2019.
|