Zufallsfunktion OHNE srand() und rand()?

... komplette Frage anzeigen

3 Antworten

Es gibt in der Windows Library ja solche Dinge wie "srand()" und "rand()".

Nicht nur da... ;)

Möglichst mit Codebeispiel : )

Da hast du ;)

static long int w = 88675123;
void srand(long int seed){
w = seed;
}

// https://de.wikipedia.org/wiki/Kongruenzgenerator
const long int a=25214903917;
const long int c=11;
const long int m=281474976710656;
long int rand_lcg(){
w = (a * w + c) % m;
return w;
}

// https://de.wikipedia.org/wiki/Xorshift
static long int x = 123456789;
static long int y = 362436069;
static long int z = 521288629;
long int rand_xor(){
long int t = x ^ (x << 11);
x = y; y = z; z = w;
w ^= (w >> 19) ^ t ^ (t >> 8);
return w;
}
Antwort bewerten Vielen Dank für Deine Bewertung

Pseudozufallszahlengenerator mit Random Seed (PRNG). Dieser schmackhafte Klassiker kann mit Hilfe von Schieberegistern und XOR Operationen relativ einfach implementiert werden.

Man beachte, dass die Zufallszahlen determiniert sind und das Seed immer anders wählen sollte. Außderm muss das Schieberegister lang genug wählen, damit die Periode nicht zu klein wird.

Viel Spaß 

Antwort bewerten Vielen Dank für Deine Bewertung

z.B. eine Operation mit der aktuellen Uhrzeit

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?