Programmiersprache C/C++

Zufallszahlen

  #include <stdlib.h>

  int rand();
  void srand (unsigned int seed);
rand liefert eine ganzzahlige Zufallszahl im Bereich von 0 und 2^15 - 1.

srand wird zur Initialisierung des Zufallszahlengenerators benutzt.

rand und srand entsprechen ANSI-C.
Es gibt jedoch teilweise in einzelnen C-Systemen leistungsfähigere Generatoren.

Beispiel:

  #include <stdio.h>
  #include <stdlib.h>

  int main(void)
  {
    int i;

    for ( i=0; i<20; i++ )
      printf("%d ", rand() % 6 + 1);     /* Wuerfeln */
    printf("\n");

    return 0;
  }
Problem: Jeder Aufruf des Programms liefert immer wieder die gleiche Zufallszahlenfolge.

Verbesserte Lösung:

  #include <stdio.h>
  #include <stdlib.h>
  #include <time.h>

  void main(void)
  {
    int i;
    time_t t;

    time(&t);
    srand((unsigned int)t);              /* Zufallsgenerator initialisieren */

    for ( i=0; i<20; i++ )
      printf("%d ", rand() % 6 + 1);     /* Wuerfeln */
    printf("\n");
  }
Die Verwendung von Datum/Uhrzeit zur Initialisierung des Generators führt dazu, daß die erzeugte Zahlenfolge "zufällig" wird.


Zurück zum Menü
Zurück zur vorigen Seite Weiter zur nächsten Seite

P. Böhme, 21.01.1996