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