|
1.コーディング上の注意#include "random.h" を指定すること。注:内部で,標準ヘッダファイル <math.h>, <string.h> をインクルードしている。 2.ライブラリ一覧(1)一様乱数
一様乱数は,初期設定用関数と一様乱数生成関数の組で使用します。 |
初期設定用 関数 |
一様乱数 生成関数 |
説明 |
init_urnd[0-6]( ) | urnd[0-6]( ) | 6種 乗算合同法 |
init_mrnd( ) | mrnd( ) | M系列 (周期:6.86×10^156) |
init_rrnd( ) | rrnd( ) | 乗算合同法 (周期:6.95×10^12) |
init_ornd[0-2]( ) | ornd[0-2]( ) | 3種 Park and Miller 乗算合同法 (周期 : 2147483646) |
init_brnd( ) | brnd( ) | Park and Miller 乗算合同法 + Bays-Durham 切り混ぜ法 |
init_ernd( ) | ernd( ) | L'Ecuyer 2種の乗算合同法組合せ(周期:2.3×10^18) + Bays-Durham 切り混ぜ法 |
init_krnd( ) | krnd( ) | Knuth 減算法 |
init_drnd( ) | drnd( ) | データ暗合化に基づく乱数列 |
init_qrnd( ) | qrnd( ) | 線形合同法(高速生成法) |
init_prnd[0-33]( ) | prnd[0-33]( ) | 33種 ポータブルな乱数生成ルーチン(拙速生成法) |
(2)各種乱数
|
乱数種類 | 初期設定用関数 | 乱数生成関数 |
整数乱数 | init_irnd(init, rnd, seed) | int irnd(max, min) |
正規分布乱数 | init_gaussd(init, rnd, seed) | double gaussd(μ, σ) |
三角分布乱数 | init_tri_rand(init, rnd, seed) | double tri_rand() |
指数分布乱数 | init_exp_rand(init, rnd, seed) | double exp_rand() |
2変量正規分布乱数 | init_binormal(init, rnd, seed) | void binormal(r, x, y) |
ベクトル乱数 | init_rnd_vector(init, rnd, seed) | void rnd_vector(x, y) |
3次元ベクトル乱数 | init_rnd_vector3(init, rnd, seed) | void rnd_vector3(x, y, z) |
(3)ランダムデータ生成関数
|
関数名及び型 | 引数及び型 | 機能 |
void init_mkdata(initfunc, func, seed) | void (*initfunc)( ); double (*func)( ); long seed; |
初期化 |
int *mkdata_i(n, min, max) | int n, min, max; | int 型配列データ生成 |
unsigned char *mkdata_c(n, min, max) | int n; unsigned char min, max; |
文字列生成 |
double *mkdata_d(n, min, max) | int n; double min, max; |
double 型配列生成 |
unsigned char **mkdata_s(n, smin, smax, min, max) | int n, smin, smax; unsigned char min, max; |
文字列配列生成 |
unsigned char **mkdata_sd(n, smin, smax, min, max) | int n, smin, smax; unsigned char min, max; |
文字列配列生成 (重複データ排除) |
(4)データ撹拌関数
|
関数名及び型 | 引数名及び型 |
void shuffle_i(ai, n, seed) | int *ai; int n; long seed; |
void shuffle_d(ad, n, seed) | double *ad; int n; long seed; |
void shuffle_c(ac, n, seed) | unsigned char **ac; int n; long seed; |
(5) 無作為抽出関数一様乱数を内部で使用するため,初期設定関数に対して,一様乱数関数用の初期設定用関数名(init)、乱数生成関数(rnd)名及び種(seed)をこの順番で引数として渡します。init と rnd は必ず上記に示した一様乱数関数の組で渡して下さい。 |
関数名及び型 | 引数名及び型 | 機能 |
void init_pickup(init, rnd , seed) | void (*init)( ); double (*rnd)( ); long seed; |
初期化 |
void pickup(m, n, pick) | int m, n, *pick; | 無作為抽出関数 |
(6)その他
本ライブラリ中で下記関数や変数を使用しているので2重定義しないで下さい。
|