/ / Mehrere Zufallszahlengeneratoren in Ziel C - Ziel-C, Zufall, Prng

Mehrere Zufallszahlengeneratoren in Objective C - objective-c, random, prng

In meinem aktuellen Projekt brauche ich mehrere zufälligeZahlengeneratoren, weil ich ihre Sequenzen unabhängig voneinander wiederholen können muss. Bisher habe ich mit den Standard-Ziel-c-Zufallszahlengeneratoren keine Möglichkeit gefunden, dies zu erreichen, da sie nur einen globalen Zustand haben.

Ich denke, eine Zufallszahlengenerator-Klasse würde mein Problem lösen. Ich könnte mehrere Instanzen erstellen, die ich einzeln zurücksetzen könnte.

Gibt es so etwas schon? In Ziel c konnte ich keine Zufallszahlengenerator-Implementierung finden. Ich würde es gerne vermeiden, es selbst zu implementieren, da ich keine Erfahrung mit Zufallszahlen habe und ich denke, dass es etwas ist, das schwer zu korrigieren ist.

Antworten:

6 für die Antwort № 1

Ich habe eine zufällige Klasse, basierend auf der Mersenne Twister Algorithmus, den du aus meiner Dropbox bekommen kannst Hier.

Es ist ziemlich alt und nicht für ARC kompiliert, aber das macht es nicht weniger gut :)

Beispielcode:

MTRandom *randWithSeed = [[MTRandom alloc] initWithSeed:12345];
double d = [rand nextDouble];
int i = [rand nextInt];

MTRandom *timeBasedRand = [MTRandom new]; // seeds with current time
double d2 = [timeBasedRand nextDouble];
int i2 = [timeBasedRand nextInt];

BEARBEITEN: Wenn Sie wirklich cool sein wollen, können Sie dies verwenden:

Bildbeschreibung hier eingeben Quelle


1 für die Antwort № 2

Hast du es versucht

srandom(seed);

und dann anrufen

random();

? Wenn die Samen gleich sind, sollten Sie die gleiche Folge von Zufallszahlen erhalten.