5.30. mnewrand 乱数データの新規生成

0.0から1.0の範囲の実数乱数を生成する。 int オプションを指定することで、整数乱数を生成することもできる。 乱数の生成にはメルセンヌ・ツイスター法を利用している (href{http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html}{原作者のページ} , href{http://www.boost.org/doc/libs/1_54_0/doc/html/boost_random.html}{boostライブラリ})。

パラメータ

o= : 型=str , 任意(default=標準出力)

出力データを指定する。

a= : 型=str , 必須

新規に作成するデータの項目名を指定する。
nfn もしくは nfno オプション指定時は指定の必要はない。

max= : 型=str , 任意(default=INT_MAX)

乱数の最大値を指定する。
このパラメータを指定するときは int オプションも指定しなければならない。

min= : 型=str , 任意(default=0)

乱数の最小値を指定する。
このパラメータを指定するときは int オプションも指定しなければならない。

S= : 型=str , 任意(default=現在時刻)

乱数の種を指定する。

l= : 型=str , 任意(default=10)

行数
新規作成する乱数データの行数を指定する。

int= : 型=bool , 任意(default=False)

整数乱数を生成する

共通パラメータ

o= , nfn= , nfno= , x= , tmppath= , precision=

利用例

importと入力データ(CSV)の準備

1import nysol.mcmd as nm

基本例

実数乱数を10行生成する。乱数の種は1に固定しているので、いつ実行しても乱数系列は同じになる。

 1nm.mnewrand(a="rand", S="1", o="rsl1.csv").run()
 2### rsl1.csv の内容
 3# rand
 4# 0.4170219984
 5# 0.9971848081
 6# 0.7203244893
 7# 0.9325573612
 8# 0.0001143810805
 9# 0.1281244478
10# 0.3023325677
11# 0.9990405154
12# 0.1467558926
13# 0.2360889763

整数乱数

最小値が0、最大値が1000、乱数の種が1の整数乱数を5行作成する。

1nm.mnewrand(a="rand", int=True, max="1000", min="0", l="5", S="1", o="rsl2.csv").run()
2### rsl2.csv の内容
3# rand
4# 417
5# 998
6# 721
7# 933
8# 0

ヘッダ行なしで出力

nfn=True でヘッダーなしのデータが生成される。

1nm.mnewrand(nfn=True, l="5", S="1", o="rsl3.csv").run()
2### rsl3.csv の内容
3# 0.4170219984
4# 0.9971848081
5# 0.7203244893
6# 0.9325573612
7# 0.0001143810805

関連メソッド