Namensräume
Varianten
Aktionen

std::srand

Von cppreference.com
< cpp‎ | numeric‎ | random
 
 
 
 
Definiert in Header <cstdlib>
void srand( unsigned seed );

Initialisiert den Pseudozufallszahlengenerator, der von std::rand() verwendet wird, mit dem Wert seed.

Wenn std::rand() vor einem Aufruf von srand() verwendet wird, verhält sich std::rand() so, als wäre es mit srand(1) initialisiert worden.

Jedes Mal, wenn std::rand() mit demselben seed initialisiert wird, muss es dieselbe Sequenz von Werten erzeugen.

srand() ist nicht garantiert threadsicher.

Inhalt

[bearbeiten] Parameter

seed - der Seed-Wert

[bearbeiten] Rückgabewert

(keine)

[bearbeiten] Hinweise

Generell sollte der Pseudozufallszahlengenerator nur einmal zu Beginn des Programms, vor allen Aufrufen von rand(), initialisiert werden. Er sollte nicht wiederholt initialisiert oder jedes Mal neu initialisiert werden, wenn Sie einen neuen Satz von Pseudozufallszahlen erzeugen möchten.

Standardmäßig wird das Ergebnis eines Aufrufs von std::time(0) als Seed verwendet. Allerdings gibt std::time einen std::time_t-Wert zurück, und es ist nicht garantiert, dass std::time_t ein ganzzahliger Typ ist. In der Praxis definieren jedoch alle größeren Implementierungen std::time_t als ganzzahligen Typ, und dies ist auch das, was POSIX verlangt.

[bearbeiten] Beispiel

#include <cstdlib>
#include <ctime>
#include <iostream>
 
int main() 
{
    std::srand(std::time(0)); // use current time as seed for random generator
    std::cout << "Random value on [0, " << RAND_MAX << "]: " << std::rand() << '\n';
}

Mögliche Ausgabe

Random value on [0, 2147483647]: 1373858591

[bearbeiten] Siehe auch

generiert eine Pseudozufallszahl
(Funktion) [edit]
maximal möglicher Wert, der von std::rand generiert wird
(Makrokonstante) [edit]
Setzt die pro-Thread-Zufalls-Engine zurück.
(Funktion) [bearbeiten]
C-Dokumentation für srand