形式
x = arand( dpt, seed, f, min, max )
パラメータ
x : 出力時系列 (Series)
dpt : 出力データ点数
seed : 乱数の初期値 (奇数)
f : 経験分布関数バッファ (Series,Snapshot)
min : 経験分布関数定義域下限 (乱数最小値)
max : 経験分布関数定義域上限 (乱数最大値)
解説
乱数のシードは,M 系列を用いて生成している.
乱数生成のアルゴリズムは,逆関数法を用いている.
経験分布関数 f の値域は,0≦f≦1 の区間に入っていなければならない.
使用例
コーシー分布に従う乱数を発生させる.
func cauchy(x) { #
return 1 / (PI * (x^2 + 1)); # コーシー分布の
} # 密度関数定義
series f;
x = (0~999) / 1000 - 0.5; # 分布関数の定義域設定
ff = cauchy(x); # 密度関数の値設定
a = sum(ff,f); # 密度関数を積算する
f = f / a; # 経験分布関数の設定
data = arand(1024,1,f,min(x),max(x)); # 乱数生成