Die C ++ Random Number Generator

Zufallszahlengeneratoren erfüllen eine Reihe von Zwecken. Alles, was von den Spielen zu Simulationen erfordern einen Zufallszahlengenerator richtig zu arbeiten. Zufälligkeit findet seinen Weg in die Geschäfts Was-wäre-wenn-Szenarien als auch. Kurz gesagt, müssen Sie zufällige Ausgabe Ihrer Anwendung in vielen Situationen hinzuzufügen.

eine Zufallszahl zu schaffen, ist nicht schwer. Alles, was Sie tun müssen, ist eine Zufallszahl-Funktion aufrufen, wie in der gezeigt RandomNumberGenerator Beispiel:

#einschließen # include # include using namespace std-int main () {// Setzen Sie immer ein Samen value.srand ((unsigned int) Zeit (NULL)) - int RandomValue = rand ()% 12-cout lt; lt; "Die zufällige Nummer des Monats ist:" lt; lt; RandomValue + 1 lt; lt; Endl-return 0-}

Eigentlich nicht einer der Zufallszahlengeneratoren in der Standard Library funktioniert - das vorstellen! Sie sind alle Pseudo-Zufalls Zahlengeneratoren: Die Zahlen sind so verteilt, dass es scheint, dass Sie eine Zufallssequenz zu sehen, aber genug Zeit und Geduld gegeben, schließlich die Sequenz wiederholt.

In der Tat, wenn Sie nicht über einen Startwert für die Zufallszahlengenerator einstellen, können Sie jedes Mal, vorhersehbare Folgen von Zahlen zu erhalten. Wie langweilig. Hier ist eine typische Ausgabe aus diesem Beispiel:

Die zufällige Nummer des Monats ist: 7

Die erste Zeile des Codes in Main() setzt den Samen durch die Systemzeit verwenden. die Systemzeit gewährleistet ein gewisses Maß an Zufälligkeit in den Startwert - und damit ein Maß an Zufälligkeit für Ihre Anwendung als Ganzes. Wenn Sie diese Codezeile aus zu kommentieren sehen Sie die gleiche Leistung jedes Mal, wenn Sie die Anwendung ausführen.

Die Beispielanwendung Anwendungen rand () den Zufallswert zu schaffen. Wenn Sie das Modul der Zufallszahl nehmen, erhalten Sie einen Ausgang, der in einem bestimmten Bereich liegt - 12 in diesem Fall. Das Beispiel endet um 1 auf die Zufallszahl Hinzufügen weil es keine Monat 0 im Kalender ist, und gibt dann die Nummer des Monats für Sie.

Die Standard Library ermöglicht den Zugriff auf zwei Arten von Pseudo-Zufallszahlen-Generatoren. Der erste Typ erfordert, dass Sie einen Startwert gesetzt. Der zweite Typ erfordert, dass Sie einen Eingangswert bei jedem Aufruf liefern und benötigt keinen Startwert. Jeder Generator gibt einen anderen Datentyp, so dass Sie die Art der Zufallszahl wählen, die Sie erhalten.

Die Tabelle listet die Zufallszahlengeneratoren und sagt Ihnen, welche Datentyp sie ausgegeben.

Pseudo-Zufallszahlengenerator-Funktionen
FunktionAusgabetypSeed erforderlich?
randganze Zahlja
drand48doppeltja
erand48doppeltNein
lrand48langeja
nrand48langeNein
mrand48unterzeichnet langja
jrand48unterzeichnet langNein

Nun, da Sie über die Pseudo-Zufallszahlengeneratoren kennen, schauen Sie sich die Samen Funktionen zu grundieren sie verwendet. In der folgenden Tabelle sind die Samen Funktionen und ihre zugehörigen Pseudo-Zufallszahlengenerator-Funktionen.

Seed-Funktionen
FunktionAssoziierte Pseudozufallszahlengenerator-Funktion
srandrand
srand48drand48
seed48mrand48
lcong48lrand48

Menü