Heim >Backend-Entwicklung >C++ >Warum erzeugt std::random_device identische Sequenzen mit MinGW 4.8.1?
Reproduzierbarkeitsprobleme mit std::random_device und MinGW
In C ist das
Analyse
Das inkonsistente Verhalten warf Fragen zum Determinismus auf von
"Beachten Sie, dass std::random_device in Form einer Pseudozufallszahlen-Engine implementiert werden kann, wenn eine nicht deterministische Quelle (z. B. ein Hardwaregerät) vorliegt ) steht der Implementierung nicht zur Verfügung.“
Dies deutet darauf hin, dass die Bibliothek auf einen Pseudozufallsgenerator zurückgreift, wenn keine echte Zufallsquelle verfügbar ist. Im Fall von MinGW 4.8.1 scheint es jedoch, dass die Ausgabe auch bei Pseudozufälligkeit durchgängig vorhersehbar bleibt.
Vermutete Begründung
Eine Theorie postuliert dies Dieses Verhalten kann beabsichtigt sein. Durch die Bereitstellung nicht zufälliger Sequenzen macht die Bibliothek potenzielle Mängel in der Zufälligkeit der zugrunde liegenden Implementierung deutlich. Dies würde Entwicklern als Warnung dienen, dass die generierten Zufallszahlen möglicherweise nicht wirklich unvorhersehbar sind.
Auflösung
Um wirklich zufällige Sequenzen mit MinGW 4.8.1 zu generieren, müssen Benutzer können die Verwendung alternativer Implementierungen der im
Das obige ist der detaillierte Inhalt vonWarum erzeugt std::random_device identische Sequenzen mit MinGW 4.8.1?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!