Generieren Sie auf jedem Computer dieselbe zufällige Permutation


Gurkirat Singh

Ich benutze die random_shuffleSequenz a1000 Mal. Ich möchte sicherstellen, dass auf jedem Computer die endgültige Reihenfolge gleich ist. Das mag unerwünscht aussehen, aber ich möchte es trotzdem erreichen. Stellt das srand(x)sicher?

Pete Becker

Es gibt zwei Ursachen für Unterschiede beim resultierenden Mischen: Der Algorithmus für rand()ist nicht angegeben, sodass unterschiedliche Implementierungen unterschiedliche Zahlenfolgen erzeugen. und der Algorithmus für random_shuffleist nicht spezifiziert, so dass wiederum unterschiedliche Implementierungen unterschiedliche Ergebnisse erzeugen, selbst mit derselben Folge von Pseudozufallszahlen.

Sie können das erste Problem beheben, indem Sie einen der Zufallszahlengeneratoren in C ++ 11 verwenden. Sie sind alle detailliert spezifiziert, einschließlich für einige Spezialisierungen eine Anforderung für den 10.000sten Wert, was eine große Hilfe beim Debuggen ihrer Implementierung ist. Es gibt jedoch kein Analogon zum Mischen. Insbesondere ist der Algorithmus für std::shufflenicht angegeben, sodass keine reproduzierbaren Ergebnisse erzielt werden. Du musst deine eigenen schreiben. Das ist nicht schwierig (bei weitem nicht so schwierig wie das Schreiben eines Motors), recherchieren Sie einfach ein wenig. Es gibt viele Diskussionen, von denen Sie ausgehen können.

Verwandte Artikel


Generieren Sie zufällige linear unabhängige Polynome auf MATLAB

arvindrajan92 Ich möchte eine Menge von K zufälligen linear unabhängigen Polynomen M-ter Ordnung auf MATLAB erstellen. Ich bin auf diese Frage bei StackOverflow gestoßen, bin mir jedoch nicht sicher, ob sie linear unabhängig ist. und ich versuche nicht, es bin

Generieren Sie zufällige Punkte auf dem osmnx-Diagramm

TariqShah Ich habe mit der osmnx-Bibliothek ein Straßennetzdiagramm erstellt. Jetzt möchte ich einige zufällige Punkte im Netzwerk generieren, aber ich habe keine Ahnung, wie das geht. Brauche Hilfe :(hier ist mein Code: import geopandas as gpd import osmnx a

Generieren Sie zufällige Klickereignisse

Kyle Underhill Ich möchte Klickereignisse auf Schaltflächen in einer Liste von Elementen zufällig anordnen können. Ich habe ähnlichen Code zum Hinzufügen von Klassen gesehen, aber ich muss zufällige Klickereignisse über der Liste der Elemente simulieren. $(fun

Generieren Sie zufällige Zertifikate

Joly: Ich suche nach einer Utility-Klasse, die zu Testzwecken zufällige Zertifikatzeichenfolgen generieren kann. Irgendeine Idee, ob es bereits eine gibt? Mark Peters: Die integrierten Java X500-Bibliotheken sind eher auf die Verwendung von Zertifikaten als au

Nicht bei jedem Anruf zufällige Zeichen generieren

CogentCripple Ich hoffe, jemand kann mich darauf hinweisen, warum mein Code nicht jedes Mal, wenn er in der Hauptklasse aufgerufen wird, eine zufällige Folge von alphabetischen Zeichen erstellt. Hier ist meine Passwort-Randomizer-Klasse: import java.util.Rando