2011年3月13日日曜日

乱数発生例

乱数を発生する例題です。

[0..max] の実数値を発生しています。

実数における一様乱数として最もよく用いられるのは 0..1 の範囲の一様乱数ですが、その乱数に max の値を掛ければ 0..max の区間の実数値を得ることができます。
rand() 関数は、0..RAND_MAX(コンパイラ等により異なる)の範囲の整数を発生するため、RAND_MAX 個の乱数を max の範囲に分散させることになり、乱数ごとの間隔は max/RAND_MAX になります。

OSX/gcc の RAND_MAX は以下の実行例のように、2147483647 となっています。

乱数を発生させるためにはシード値を設定しなければなりませんが、同じシード値を利用すると毎回同じ乱数列が取得されます(ソース上では、idum 変数)。

実行結果

0 件のコメント:

コメントを投稿