Programmiersprache C: Zufallszahlen



Zufallszahlen spielen eine große Rolle bei der Spieleprogrammierung.

int z = rand();
printf("%i", z);

Das rand() steht für random (engl. für „zufällig“).


Bsp 1: zehn beliebige Zufallszahlen erzeugen

#include
int main (void) {
   int x = 1, z;

   while(x<=10){
      z=rand(); //Zufallszahl erzeugen
      printf ("%i ", z);
      x++;
   }
   return 0;
}


Bsp 2: zehn Zufallszahlen im Bereich 0 bis 20 erzeugen

#include
int main (void){
   int x = 1, y;

   while(x<=10) {
      y=rand(); //Zufallszahl erzeugen
      y = y % 21; // Prozentzeichen -> siehe unten!
      printf ("%i ", y);
      x++;
   }
   return 0;
}


Erklärung des Prozentzeichens:

Es handelt sich hierbei um das Rechenzeichen (Operationszeichen) der Modulo-Rechenoperation.
Ergebnis der Modulo-Rechenoperation ist der Rest einer ganzzahligen Division:
16 : 3 = 5 Rest 1.
16 % 3 = 1 (die 1 ist der Rest, wie eine Zeile höher gezeigt)
(Sprechen muß man 16 % 3 übrigens "sechzehn modulo drei".)


Noch zufälliger:

Du hast vielleicht bemerkt, daß im Beispiel 2 immer dieselben 10 Zufallszahlen erzeugt wurden.
Um das zu verhindern kann man den Zufallsgenerator vorher mit einer unterschiedlichen Startbedingung (Saat) versehen.
Schreibe vor dem ersten rand()-Aufruf die Anweisung: srand(time(0));

weiter