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

この関数の目的

srand()は、偽乱数のシードを設定する。

定義

	#include <stdlib.h>
	void srand(unsigned int seed);

働き

この関数は seedrand() が返す新しい乱数列のシードとして使う。 srand() が同じシード値で呼ばれるならば、乱数列も同じものが繰り返されなければならない。 srand() よりも rand() が先に呼ばれた場合、 srand() に 1 を渡したのと同じ乱数列が発生しなければならない。

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

解説

シード(seed)とは英語で「種」という意味であり、文字通り乱数列の木が育つのに必要な種であるといえる。 コンピュータというやつは、種がないと全くでたらめな数字が思いつけないのである。

実行時に一度も srand() を呼ばないと、rand() の返す乱数列が常に( srand(1) としたのと)同じものになってしまう。 これを回避するには、以下のようにシステム時間で初期化するのが最も素直な方法だ。

	srand((unsigned)time(NULL));
arrow 若葉プログラミング塾 > 知識の玉手箱 > C関数リファレンス >
KC