rand()、rand_r() — 乱数の生成

フォーマット

#include <stdlib.h>
int rand(void);
int rand_r(unsigned int *seed);

言語レベル: ANSI

スレッド・セーフ: いいえ。 rand() はスレッド・セーフではありませんが、rand_r() はスレッド・セーフです。

説明

rand() 関数は、0 から RAND_MAX (<stdlib.h> で定義されるマクロ) までの範囲の疑似乱数整数を生成します。 rand() を呼び出す前に srand() 関数を使用して、乱数発生ルーチンの開始点を設定します。最初に srand() 関数を呼び出さない場合、デフォルトの seed は 1 です。

注:
rand_r() 関数は、rand() の再始動可能なバージョンです。

戻り値

rand() 関数は疑似乱数を戻します。

rand() の使用例

この例では、生成された最初の 10 の乱数を出力します。

#include <stdlib.h>
#include <stdio.h>
 
int main(void)
{
   int x;
 
   for (x = 1; x <= 10; x++)
      printf("iteration %d, rand=%d¥n", x, rand());
}
 
/*********************  Output should be similar to:  ************
 
iteration 1, rand=16838
iteration 2, rand=5758
iteration 3, rand=10113
iteration 4, rand=17515
iteration 5, rand=31051
iteration 6, rand=5627
iteration 7, rand=23010
iteration 8, rand=7419
iteration 9, rand=16212
iteration 10, rand=4086
*/

関連情報



[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]