Pseudo-Zufallszahlen

 [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

wator.c
/*
 * Initialisierung der Random-Funktion, muss vor dem ersten Aufruf
 * von random() aufgerufen werden
 */
void random_init()
{  long seedval;

   printf("Bitte eine beliebige Zahl eingeben: ");
   scanf("%ld", & seedval); skip_nl();
   srand48(seedval);
}

/* liefert eine gleichverteilte Zufallszahl innerhalb [von..bis] */
int random(int von, int bis)
{  long rand;

   rand = lrand48();
   return von + rand % (bis - von + 1);
}

*lrand48 ist ein Pseudo-Zufallszahlen-Generator der C-Bibliothek. Genauso wie bei rand handelt es sich dabei einen Generator auf Basis linearer Kongruenzen -- jedoch mit größeren Werten und daher etwas längerer Periode.
 
*random_init liest einen Zahl vom Benutzer ein und gibt sie als Startwert an srand48 weiter.
 
*lrand48 liefert gleichverteilt Werte aus dem Intervall zwischen -2^31 und 2^31-1, die von random in das gewünschte Intervall abgebildet werden.
 

 [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1998 Andreas Borchert, in HTML konvertiert am 01.12.1998