srand() Funktion in C

Gast #3243503
Lesenswert?
• ▲
▼
Hallo,

Laut (englischer) Wikipedia und anderer Internetquellen handelt es sich 
bei srand() um einen Kongruenzgenerator mit der Formel:
a,c und m sind konstant x0 ist der Startwert (seed)

Meine Frage:
Steckt hinter srand() wirklich obiger Kongruenzgenerator?
Wenn Ja, wo ist das definiert und welche Werte haben a, c und m?

Danke
Matthias
Gast #3243626
Lesenswert?
• ▲
▼
Hier eine standard Srand Funktion:
Also die obige Formel scheint zu stimmen.
1
static unsigned long int next = 1;
2

3
int rand(void) // RAND_MAX assumed to be 32767
4
{
5
#if 0
6
    return (unsigned int)((next = next * 1103515245 + 12345)/65536) % 32768;
7
#else
8
    return (unsigned int)((next = next * 1103515245 + 12345)>>16) % 0x7fff;
9
#endif
10
}
11

12
void srand(unsigned int seed)
13
{
14
    next = seed;
15
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren