Ich habe MT19937
in einem Test-Harness einheitliche (vorzeichenlose) 32-Bit- Werte [0, - 1] basierend auf der ursprünglichen mt19937.c- Implementierung der Autoren generiert , um ein (im Wesentlichen unerschöpfliches) Angebot an zu generieren statistisch zufälliger Strom von Bitoktetten. Dies ersetzt ein CSPRNG, das für diese speziellen Tests nicht erforderlich ist. Ich habe jedoch kürzlich über die PRNGs nachgedacht - nicht wegen der statistischen Eigenschaften als solche (beide scheinen für meine Bedürfnisse mehr als angemessen zu sein) -, aber sie scheinen eine effizientere Implementierung vorzuschlagen.WELL
Mir fehlt der mathematische Hintergrund für die wissenschaftlichen Arbeiten, obwohl ich zumindest der 'Twist'-Matrix und der Tempering-Transformation für die erstere folgen könnte. Ein Großteil des von den Autoren der WELL-n
Funktionen bereitgestellten Codes scheint sich jedoch auf die Gleitkommaerzeugung mit einigen magischen Gleitkommakonstanten (z 2.32830643653869628906e-10
. B. ) zu konzentrieren. Können Schritte im WELL
Code weggelassen werden, um eine einheitliche 32-Bit-Verteilung bereitzustellen? Oder ist der Algorithmus speziell für Gleitkommaverteilungen entwickelt / voreingenommen?
Oder ich bin ein falscher WELL
Denker, der einen Leistungsgewinn für die Erzeugung von "Bulk" -Uint32-Vektoren bringt und gleichzeitig meine Anforderungen erfüllt?
PCG
neige ich mich jetzt zu den RNGs. Sie sind viel schneller, können sehr lange Zeiträume (sowie mehrere Ströme) mit statistisch hervorragenden Eigenschaften versorgen und scheinen sich sehr schnell von schlechten IVs zu erholen.