Pseudozufallszahlengenerator gibt dieselbe erste Ausgabe aus, verhält sich dann aber wie erwartet

Wenn Sie die Zufallsklasse und einen Startwert für die Zeit (NULL) verwenden, gibt die gleichmäßige Verteilung auch bei unterschiedlichen Kompilierungen immer die gleiche erste Ausgabe aus, aber nachdem sich die erste Ausgabe so verhält, wie Sie es von einem Pseudozufallszahlengenerator erwarten würden.

Ist das ein Konstruktionsfehler oder verwende ich es falsch?

MWE:

#include <ctime>
#include <iostream>
#include <random>

using namespace std;

default_random_engine gen(time(NULL));
uniform_int_distribution<int> dist(10,200);

int main()
{
    for(int i = 0; i < 5; i++)
        cout<<dist(gen)<<endl;

    return 0;
}

Die ersten drei Male, die ich dieses Programm ausgeführt habe, erhalte ich Ausgaben von:

57
134
125
136
112

Vor dem zweiten Versuch habe ich beschlossen, eine leere Zeile zwischen @ zu löscheuniform_int_distribution undint main() Nur um zu sehen, ob der Startwert auf der Kompilierungszeit basiert, spielt das keine Rolle.

57
84
163
42
146

Nur wieder am Laufen:

57
73
181
160
46

So auf meinen Läufen bekomme ich immer57 zuerst, was natürlich nicht das Ende der Welt ist, wenn ich verschiedene Ausgaben haben will, kann ich die erste Ausgabe wegwerfen. Aber es stellt sich die Frage, ob dies beabsichtigt ist (wenn ja, warum?) Oder ob ich den Generator irgendwie missbrauche (wenn ja, wie?).

Antworten auf die Frage(3)

Ihre Antwort auf die Frage