(17) rand()とrandn()で乱数生成

投稿者: | 2013/08/24

rand()は、一様分布の乱数生成、
randn() は、正規分布に従った乱数生成をしてくれる。

(1) まずは rand() で 200×200個の乱数を生成し、ヒストグラムでその分布を見てみる。

octave:1> a=rand(200);          % 200x200個の0.0~1.0までの一様乱数を生成
octave:2> b=a*100; c=floor(b);  % 生成した乱数を0~100の整数に変換
octave:3> hist(c)               % ヒストグラム表示

結果は以下のようになった。確かに0~100の全範囲に渡って均等に乱数が生成されている。

(2) 次に、randn() で 200×200個の乱数を生成し、ヒストグラムでその分布を見てみる。

octave:1> a=randn(200);         % 200x200個の0.0~1.0までの正規分布乱数を生成
octave:2> b=a*100; c=floor(b);  % 生成した乱数を0~100の整数に変換
octave:3> hist(c)               % ヒストグラム表示

結果は以下のようになった。正規分布に従って乱数が生成されている。

なんだか隙間が空いているような…
後で調べてみよう。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です