名前空間
変種
操作

srand

提供: cppreference.com
< c‎ | numeric‎ | random
ヘッダ <stdlib.h> で定義
void srand(unsigned seed );

rand() で使用される擬似乱数ジェネレータを値 seed でシードします。

いかなる srand() の呼び出しよりも前に rand() が使用された場合、 rand()srand(1) によってシードされたかのように動作します。

同じ seed を使用して rand() がシードされるたびに、連続する呼び出しに対して同じ値のシーケンスを生成しなければなりません。

srand() はスレッドセーフであることは保証されません。

目次

[編集]引数

seed - シード値

[編集]戻り値

(なし)

[編集]ノート

一般的には擬似乱数ジェネレータは、プログラム開始時にいかなる rand() の呼び出しよりも前に、一度だけシードするべきです。 繰り返しシードしたり、新しい乱数の束を生成したいときに毎回再シードしたりするべきではありません。

標準的な慣習では time(0) の呼び出しの結果をシードとして使用します。 しかし、 time()time_t の値を返し、 time_t は整数型であることは保証されていません。 とはいえ、実際のところ、すべてのメジャーな処理系は time_t を整数型として定義しており、これは POSIX が要求していることでもあります。

[編集]

#include <stdio.h>#include <stdlib.h>#include <time.h>   int main(void){ srand(time(0));//use current time as seed for random generatorint random_variable =rand();printf("Random value on [0,%d]: %d\n", RAND_MAX, random_variable);}

出力例:

Random value on [0 2147483647]: 1373858591

[編集]参考文献

  • C11 standard (ISO/IEC 9899:2011):
  • 7.22.2.2 The srand function (p: 346-347)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.20.2.2 The srand function (p: 312-313)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • 4.10.2.2 The srand function

[編集]関連項目

擬似乱数を生成します
(関数)[edit]
rand()によって生成可能な最大値
(マクロ定数)[edit]
close