Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Erstellung von Zufallszahlen

srand(time(NULL)) definiert den Startwert zum Erzeugen der Zufallszahl abhängig von der aktuellen Zeit.

rand() liefert eine ganzzahlige Zufallszahl aus dem Bereich 0 bis RAND_MAX (meist 32767).

RAND_MAX ist definiert als das Maximum, dass von rand() erzeugt werden kann.

Ganze Zahlen

Über den Modulo-Operator (%) kann man einen Zahlenbereich eingrenzen.

Positiv

Um einen Bereich von Zahlen auszurechnen, rechnen wir den Höchstwert minus den Mindestwert plus eins. z.B.: (10 - 2 + 1)

Damit jetzt unsere Zufallszahl beim Mindestwert anfängt, rechnen wir plus den Mindestwert.

Das Endergebnis sieht dann so aus:

rand() % (10 - 2 + 1) + 2

Negativ

Bei Negativen Zahlen machen wir ebenfalls das gleiche:

rand() % (-2 - (-10) + 1) + (-10)

Gleitkommazahlen

Durch Multiplikation (*) kann man diesen Bereich eingrenzen.

Da wir eine Zahl von 0.0 - 1.0 von rand() haben wollen, dividieren wir das Ergebnis von rand() mit RAND_MAX.

Ebenfalls müssen wir den Datentyp den wir von rand() haben wollen in Klammern vor rand() schreiben, dieser Prozess heißt Type Casting.

Positiv

Um einen Bereich von Zahlen auszurechnen, rechnen wir den Höchstwert minus den Mindestwert. z.B.: (10.25 - 2.5)

Damit jetzt unsere Zufallszahl beim Mindestwert anfängt, rechen wir plus den Mindestwert.

Das Endergebnis sieht dann so aus:

((float) rand() / RAND_MAX) * (10.25 - 2.5) + 2.5

Negativ

Ebenfalls machen wir es gleich hier:

((float) rand() / RAND_MAX) * ((-2.5) - (-10.25)) + (-10.25)