noreaga
Eroberer
Hallo!
Ich habe ein kleines Problem beim erzeugen von Zufallszahlen. Für mein Praktikum in Algorithmen und Datenstrukturen ist ein Tool zur Laufzeitmessung verschiedener Sortieralgorithmen zu schreiben. Dazu benötige ich ein Array mit zufälligen Werten. Dazu verwende ich folgenden Code:
Da das Array sowohl einzeln als auch in schleifen neu initialisiert werden soll, habe ich mich entschieden, den Zufallszahlengenerator doppelt zu initialisieren. Einmal abhängig von der Zeit mit srand(time(NULL)) um für einzelne aufrufe zu verschiedenen Zeitpunkten jeweils ein neues Feld zu haben und einmal mit srand(clock()) um andere Zahlen zu bekommen wenn die funktion init() in schleife aufgerufen wird. Leider werden beim Aufruf in schleife trotzdem immer die selben Zahlen geliefert. Weis vielleicht jemand, ob der Zufallszahlengenerator nur 1 mal initialisiert werden kann? Oder hat jemand einen anderen Vorschlag für mein Problem?
P.S. ich weis, dass die Zahlen durch die modulo operation statistisch nicht mehr gleichverteilt sind... das kann man hier mal vernachlässigen
Ich habe ein kleines Problem beim erzeugen von Zufallszahlen. Für mein Praktikum in Algorithmen und Datenstrukturen ist ein Tool zur Laufzeitmessung verschiedener Sortieralgorithmen zu schreiben. Dazu benötige ich ein Array mit zufälligen Werten. Dazu verwende ich folgenden Code:
Code:
const int * generator::init() {
srand(time(NULL));
unsigned int factor = (rand() % 100);
srand(clock());
for(int p=0; p < this->n; p++) {
this->walk_ptr[p] = ((rand() * factor) % this->upper_border);
}
return this->ptr;
}
Da das Array sowohl einzeln als auch in schleifen neu initialisiert werden soll, habe ich mich entschieden, den Zufallszahlengenerator doppelt zu initialisieren. Einmal abhängig von der Zeit mit srand(time(NULL)) um für einzelne aufrufe zu verschiedenen Zeitpunkten jeweils ein neues Feld zu haben und einmal mit srand(clock()) um andere Zahlen zu bekommen wenn die funktion init() in schleife aufgerufen wird. Leider werden beim Aufruf in schleife trotzdem immer die selben Zahlen geliefert. Weis vielleicht jemand, ob der Zufallszahlengenerator nur 1 mal initialisiert werden kann? Oder hat jemand einen anderen Vorschlag für mein Problem?
P.S. ich weis, dass die Zahlen durch die modulo operation statistisch nicht mehr gleichverteilt sind... das kann man hier mal vernachlässigen