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

Wie kann ich zufällige Gleitkommazahlen in C generieren?

Susan Sarandon
Susan SarandonOriginal
2024-12-25 09:25:17299Durchsuche

How Can I Generate Random Floating-Point Numbers in C  ?

Zufällige Gleitkommazahlen in C generieren

In C dient die Funktion rand() als zuverlässiges Werkzeug zum Erstellen von Pseudozufallszahlen. Durch die Kombination mit RAND_MAX und die Durchführung einfacher mathematischer Operationen können Sie zufällige Floats innerhalb bestimmter Intervalle generieren. Für Freizeitprogramme und Bildungszwecke ist dieser Ansatz ausreichend. Wenn Ihre Anforderung jedoch echte Zufallszahlen mit Normalverteilung erfordert, sollten Sie die Implementierung anspruchsvollerer Techniken in Betracht ziehen.

Erzeugen von Gleitkommazahlen von 0,0 bis 1,0

Um eine zufällige Gleitkommazahl zwischen 0,0 und 1,0 (einschließlich) zu erhalten, Verwenden Sie die folgende Formel:

float r = static_cast<float>(rand()) / static_cast<float>(RAND_MAX);

Erzeugen von Floats innerhalb einer Arbitrary Bereich

Um einen Float innerhalb des Bereichs [0,0, Verwenden Sie im Bereich [LO, HI] die folgende Formel:

float r2 = static_cast<float>(rand()) / (static_cast<float>(RAND_MAX) / X);

Initialisierung der Zufallszahl Generator

Vor der Verwendung von rand() ist es wichtig, den Zufallszahlengenerator durch Aufruf von srand() zu initialisieren. Diese Initialisierung sollte nur einmal während der Programmausführung erfolgen, nicht bei jedem Aufruf von rand(). Eine gängige Vorgehensweise umfasst Folgendes:

float r3 = LO + static_cast<float>(rand()) / (static_cast<float>(RAND_MAX) / (HI - LO));

Einbindung von Header-Dateien

Beachten Sie, dass die folgenden Einbindungen von Header-Dateien erforderlich sind:

srand(static_cast<unsigned>(time(0)));

zum Aufrufen von rand() und srand()

zum Aufrufen von time()

    Das obige ist der detaillierte Inhalt vonWie kann ich zufällige Gleitkommazahlen 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