# arand

## 機能

任意の経験分布関数に従う乱数を生成する．

## 形式

    x = arand( dpt, seed, f, min, max )

## パラメータ

1. x : 出力時系列 (Series)

2. dpt : 出力データ点数

3. seed : 乱数の初期値 (奇数)

4. f : 経験分布関数バッファ (Series，Snapshot)

5. min : 経験分布関数定義域下限 (乱数最小値)

6. max : 経験分布関数定義域上限 (乱数最大値)

## 解説

1. 乱数のシードは，M 系列を用いて生成している．

2. 乱数生成のアルゴリズムは，逆関数法を用いている．

3. 経験分布関数 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));  #  乱数生成

Last updated: 2005/03/31