Previous: rand 一様乱数 Up: mcal Next: regexlen マッチ文字数 MCMD2
MCMD2 : mcal : randi 整数一様乱数

4.78 randi 整数一様乱数

書式: (最小値, 最大値[, 乱数の種])

最小値〜最大値の範囲で整数乱数を生成する。 単独で利用するとその結果はmrandコマンドを-intオプションを指定して実行した結果に等しい。

同じ乱数の種を指定すれば、同じ乱数系列となる。 指定可能な乱数の種の範囲は-2147483648〜2147483647である。 乱数の種を省略すると、 時刻(1/1000秒単位)に応じた異なる乱数の種が利用される。

乱数の生成にはメルセンヌ・ツイスター法を利用している (原作者のページ , boostライブラリ)。

利用例

例1: 基本例

100から999(3桁整数900種類)の整数乱数を生成する。 乱数の種を指定しているので、何度実行しても同じ乱数系列が生成される。

$ more dat1.csv
id
1
2
3
4
$ mcal c='randi(100,999,1)' a=rsl i=dat1.csv o=rsl1.csv
#END# kgcal a=rsl c=randi(100,999,1) i=dat1.csv o=rsl1.csv
$ more rsl1.csv
id,rsl
1,475
2,997
3,748
4,939

例2: 0,1の整数乱数

0と1の2種類の整数乱数を生成する。 乱数の種を指定していないので、実行の度に異なる乱数系列が生成される。

$ mcal c='randi(0,1)' a=rsl i=dat1.csv o=rsl2.csv
#END# kgcal a=rsl c=randi(0,1) i=dat1.csv o=rsl2.csv
$ more rsl2.csv
id,rsl
1,0
2,0
3,0
4,1
Previous: rand 一様乱数 Up: mcal Next: regexlen マッチ文字数 MCMD2