これはこの質問に関連しています - C++での乱数生成...最初の数はあまりランダムではありません
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main()
{
srand((unsigned int)time(NULL));
cout << rand() / double(RAND_MAX) << endl;
cout << rand() / double(RAND_MAX) << endl;
cout << rand() / double(RAND_MAX) << endl;
cout << rand() / double(RAND_MAX) << endl;
cout << rand() / double(RAND_MAX) << endl;
return 0;
}
バイナリ (.exe) を何度も実行すると、最初の結果の最初の 3 つの数値は常に同じであることがわかります。たとえば、実行ごとに常に 0.54xxxxx です。
いいえ、これは、パターンがない場所にパターンを見つけたからではありません。また、各実行の間に数秒待つことも役に立ちません。
編集:最初の結果のみ、最初の 3 つの数字が同じです。残りは「ランダムに見える」です。また、ジェネレーターには srand() がシードされています (上記のコード サンプルの最初の行)。