srand
提供: cppreference.com
ヘッダ <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 が要求していることでもあります。
[編集] 例
Run this code
出力例:
Random value on [0 2147483647]: 1373858591
[編集] 参考文献
- C11 standard (ISO/IEC 9899:2011):
- 7.22.2.2 The srand function (p: 346-347)