Heim >Backend-Entwicklung >C++ >Wie kann ich zufällige Floats in C generieren?

Wie kann ich zufällige Floats in C generieren?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-23 05:25:32429Durchsuche

How Can I Generate Random Floats in C  ?

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 Kopfzeile. Darüber hinaus erfordert die Zeit die Einbeziehung des Kopfzeile.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn