In einer kürzlichen Antwort wurde die Verwendung von Fortuna- oder Mersenne-Twister- Zufallszahlengeneratoren ( RNGs ) zur Erstellung einer Monte-Carlo-Simulation erwähnt . Ich hatte vorher noch nie von Fortuna gehört, also habe ich es nachgeschlagen - es scheint hauptsächlich für kryptografische Zwecke gedacht zu sein.
Ich verwende derzeit einen Mersenne Twister im Produktionscode, um einen K-Means-Algorithmus zu erstellen.
Welches (Fortuna oder Mersenne Twister) eignet sich am besten für "algorithmische Seeding" -Anwendungen (z. B. Seeding von Monte Carlo und K-Means)? Oder ist es ein "toss up" - dh am bequemsten zu benutzen.
Von meinem Platz aus sollte "best" Zufallszahlen von höchster Qualität liefern, schnell arbeiten und (möglicherweise) einen geringen Speicherbedarf haben. Qualität ist für die meisten von uns wahrscheinlich das Wichtigste.
RAND_MAX=32768
mögliche Werte. Ich benutze derzeit MT für Monte Carlo Raytracing Sim. Ich sehe MT jedoch nicht als Leistungsengpass in meinem Profiler, wahrscheinlich, weil ich Dinge wie Strahlrichtungen als Vorprozess "zufällig" generiere . Zum Beispiel könnte ich beim Start ein Array mit 100.000 Strahlen erzeugen, diese in einem Array speichern und zur Laufzeit zufällig die Startposition des Arrays auswählen (etwa 10.000 Strahlen der Sammlung). Dies hat einen relativ hohen Speicheraufwand im Austausch für gute Zufallszahlenverteilungen.