srand
| Definiert im Header <stdlib.h> |
||
| void srand( unsigned seed ); |
||
Initialisiert den Pseudozufallszahlengenerator, der von rand() verwendet wird, mit dem Wert seed.
Wenn rand() vor jeglichen Aufrufen von srand() verwendet wird, verhält sich rand() so, als ob es mit srand(1) initialisiert worden wäre.
Jedes Mal, wenn rand() mit demselben seed initialisiert wird, muss es dieselbe Sequenz von Werten erzeugen.
srand() ist nicht garantiert Thread-sicher.
Inhalt |
[bearbeiten] Parameter
| seed | - | der Seed-Wert |
[bearbeiten] Rückgabewert
(keine)
[bearbeiten] Anmerkungen
Generell sollte der Pseudozufallszahlengenerator nur einmal zu Beginn des Programms, vor jeglichen Aufrufen von rand(), initialisiert werden. Er sollte nicht wiederholt oder jedes Mal neu initialisiert werden, wenn Sie eine neue Charge von Pseudozufallszahlen generieren möchten.
Standardpraxis ist es, das Ergebnis eines Aufrufs von time(0) als Seed zu verwenden. Allerdings gibt time() einen time_t-Wert zurück, und time_t ist nicht garantiert ein ganzzahliger Typ. In der Praxis definieren jedoch alle großen Implementierungen time_t als ganzzahligen Typ, und dies ist auch das, was POSIX vorschreibt.
[bearbeiten] Beispiel
Mögliche Ausgabe
Random value on [0 2147483647]: 1373858591
[bearbeiten] Referenzen
- C17-Standard (ISO/IEC 9899:2018)
- 7.22.2.2 The srand function (S. 252-253)
- C11-Standard (ISO/IEC 9899:2011)
- 7.22.2.2 The srand function (S. 346-347)
- C99-Standard (ISO/IEC 9899:1999)
- 7.20.2.2 The srand function (S. 312-313)
- C89/C90-Standard (ISO/IEC 9899:1990)
- 4.10.2.2 The srand function
[bearbeiten] Siehe auch
| generiert eine Pseudozufallszahl (Funktion) | |
| maximal möglicher Wert, der von rand() generiert werden kann (Makrokonstante) | |
| C++-Dokumentation für srand
| |