srand
|
ヘッダーで定義
<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が要求する仕様とも一致しています。
例
出力例:
Random value on [0 2147483647]: 1373858591
参考文献
- C17規格 (ISO/IEC 9899:2018):
-
- 7.22.2.2 srand関数 (p: 252-253)
- C11規格 (ISO/IEC 9899:2011):
-
- 7.22.2.2 srand関数 (p: 346-347)
- C99規格 (ISO/IEC 9899:1999):
-
- 7.20.2.2 srand関数 (p: 312-313)
- C89/C90標準 (ISO/IEC 9899:1990):
-
- 4.10.2.2 srand関数
関連項目
|
擬似乱数を生成する
(関数) |
|
|
rand
(
)
によって生成可能な最大値
(マクロ定数) |
|
|
C++ documentation
for
srand
|
|