====== srand() ====== srand ist definiert in der ''[[start|stdlib]]'', die in C über ''stdlib.h'', bzw. in C++ über ''cstdlib'' eingebunden wird. ===== Funktion ===== srand initialisiert den Pseudo-Zufallszahlen-Generator. Üblicherweise wird er mit einer zur Laufzeit willkürlichen Größe initialisiert, wie z.B. der Zeit. Wird ein fester Wert genommen, wiederholen sich die Zufallszahlen. Nach dem Start des Programms ist der Zufallsgenerator mit dem Wert 1 initialisiert. Das Setzen des Zufallsgenerators auf einen bestimmten Seed-Wert führt dazu, dass die Zufalls sich in gleicher Reihenfolge wiederholen. Dies ermöglicht das Testen von Programmen, die mit Zufallszahlen verarbeiten, unter den reproduzierbaren Bedingungen. ===== Signatur ===== #include void srand( unsigned int seed ); **seed**: Initialisierungswert des Zufallsgenerators \\ \\ **Return value**: - ===== Bemerkungen ===== Pseudozufallszahlen sind eine Reihe von zufällig wirkenden Zahlen, die jedoch mit einer mathematischen Formel errechnet werden. Um die Zahlenreihe zu initialisieren verwendet man die Funktion [[srand()]]. ===== Beispiel ===== #include #include void print5RandomNumbers() { printf( "%d; %d; %d; %d; %d\n", rand(), rand(), rand(), rand(), rand() ); } int main( void ) { print( "Initialwert\n" ); print5RandomNumbers(); srand( time( NULL ) ); print( "Mit Zeit initialisiert\n" ); print5RandomNumbers(); srand( 3 ); print( "Wert 3\n" ); print5RandomNumbers(); srand( 3 ); print( "Wert 3 Wiederholung\n" ); print5RandomNumbers(); srand( 1 ); print( "Wert 1 == Initialwert\n" ); print5RandomNumbers(); return 0; } Ausgabe: Initialwert 1144108930; 984943658; 1622650073; 282475249; 16807 Mit Zeit initialisiert 1628753080; 850299574; 1213129056; 596772878; 1855685237 Wert 3 1284843143; 807347327; 572982925; 847425747; 50421 Wert 3 Wiederholung 1284843143; 807347327; 572982925; 847425747; 50421 Wert 1 == Initialwert 1144108930; 984943658; 1622650073; 282475249; 16807 **Anmerkung:** Die mit der Zeit initialisierten Werte sollten abweichen, die anderen Werte können abweichen von einem eigenen Ergebnis. Wichtig ist, dass der Initialwert (oben) mit 1 übereinstimmt und die Wiederholung von 3 auch dem Wert 3 entspricht. ===== siehe auch ===== [[start|stdlib]]: [[rand()]]