XLPack 7.0
XLPack 数値計算ライブラリ (C API) リファレンスマニュアル
読み取り中…
検索中…
一致する文字列を見つけられません

◆ 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.