arrow 若葉プログラミング塾 > 知識の玉手箱 > C関数リファレンス >
rand()
rand()

この関数の目的

rand()は、偽乱数を発生させる。

定義

	#include <stdlib.h>
	int rand(void);

働き

この関数は 0 から RAND_MAX の間の連続擬似乱数を発生させる。

処理系はライブラリ関数が一度も rand() を呼ばないかのように動作する。

返り値は、整数の擬似乱数である。

処理系限界

RAND_MAX マクロの値は 32767 以上でなければならない。

解説

呼ぶたびに違う乱数が返ってくるが、乱数のシードを設定しないと、実行毎に同じ乱数列が返ってくる。 実行するたびに違う結果が欲しいなら、システム時間などで初期化するのがよい。 srand()time() を参照のこと。

なお、コンピュータ上でシミュレートしている擬似乱数である限り、完全な乱数を得ることは期待できない。 処理系によっては、何度も呼んでいると周期性が現れてくる場合がある。

整数で 0 から n までの範囲で乱数を得る常套句( nRAND_MAX に近づくと誤差が出る: 統計サンプル 日本語版(Shift-JIS, EUC-JP, UTF-8, JIS)・英語版

	(rand() % (n+1))

浮動小数点数で 0 から 1 までの範囲で乱数を得る常套句(マクロにしておくと使いやすい)

	((double)rand() / RAND_MAX)
arrow 若葉プログラミング塾 > 知識の玉手箱 > C関数リファレンス >
KC