Heim >Backend-Entwicklung >C++ >Wie kann ich zufällige Floats in C generieren?
Zufällige Float-Generierung in C
In C kann die Aufgabe der Generierung zufälliger Floats durch die Verwendung des integrierten rand() erreicht werden. Funktion, die üblicherweise zur Erzeugung pseudozufälliger Ganzzahlen verwendet wird. Allerdings ist die Annahme, dass die Division von rand() durch einen Wert ausreichen würde, um zufällige Gleitkommazahlen zu erzeugen, falsch.
Um effektiv zufällige Gleitkommazahlen zu erhalten, können die folgenden Ansätze verwendet werden:
0 bis 1 Bereich:
Um einen zufälligen Gleitkommawert zwischen 0,0 und 1,0 (einschließlich) zu generieren, liefert der untenstehende Ausdruck geeignete Werte Werte:
float r = static_cast<float>(rand()) / static_cast<float>(RAND_MAX);
0 bis beliebige Gleitkommazahl:
Um eine zufällige Gleitkommazahl zwischen 0,0 und einem beliebigen Gleitkommawert X zu generieren, kann der folgende Ausdruck verwendet werden:
float r2 = static_cast<float>(rand()) / (static_cast<float>(RAND_MAX / X));
Beliebiger Bereich:
Zu generieren B. eine zufällige Gleitkommazahl innerhalb eines durch willkürliche Werte LO und HI definierten Bereichs, liefert der folgende Ausdruck das gewünschte Ergebnis:
float r3 = LO + static_cast<float>(rand()) / (static_cast<float>(RAND_MAX / (HI - LO)));
Es ist wichtig zu beachten, dass die Funktion rand() möglicherweise nicht immer wirklich zufällige Zahlen liefert unerlässlich für verschiedene Anwendungen.
Vor der Verwendung von rand() ist es zwingend erforderlich, den Zufallszahlengenerator mit einem Startwert mithilfe von srand() zu initialisieren. Diese Initialisierung gewährleistet die Generierung unterschiedlicher Zufallszahlenfolgen während der Programmausführung. Die gängige Praxis besteht darin, time(0) zu verwenden, um einen Startwert basierend auf der Systemuhr zu generieren, wie folgt:
srand(static_cast<unsigned int>(time(0)));
Um Rand und Srand zu verwenden, ist es notwendig, die
Das obige ist der detaillierte Inhalt vonWie kann ich zufällige Floats in C generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!