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

Wie kann ich zufällige Gleitkommazahlen in C effektiv generieren?

Barbara Streisand
Freigeben: 2024-12-25 14:24:09
Original
393 Leute haben es durchsucht

How Can I Generate Random Float Numbers in C   Effectively?

Generieren von zufälligen Gleitkommazahlen in C

Für Ihr spezifisches Dilemma ist die Division der Ausgabe von Rand durch eine Konstante kein robuster Ansatz zum Generieren von zufälligen Gleitkommazahlen. Während es zu Lernzwecken ungefähre Ergebnisse liefern kann, ist es nicht für ernsthafte Anwendungen geeignet, die zuverlässige Zufallszahlen erfordern.

Zufällige Gleitkommazahlen mithilfe mathematischer Operationen generieren

Zum Generieren mit hoher Präzision Random Floats in C verwenden die von der C-Standardbibliothek bereitgestellten Funktionen. Um beispielsweise einen zufälligen Gleitkommawert zwischen 0,0 und 1,0 zu generieren, können Sie den folgenden Code verwenden:

float r = static_cast<float> (rand()) / static_cast<float> (RAND_MAX);
Nach dem Login kopieren

Wenn Sie zufällige Gleitkommazahlen innerhalb eines beliebigen Intervalls generieren müssen, passen Sie die Formel entsprechend an:

  • Von 0,0 bis X:

    float r2 = static_cast<float> (rand()) / (static_cast<float> (RAND_MAX/X));
    Nach dem Login kopieren
  • Von LO nach HI:

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

Verwendung Generatoren für echte Zufallszahlen

In Szenarien, in denen Sie echte Zufallszahlen mit Normalwert benötigen Erwägen Sie den Einsatz fortschrittlicherer Methoden wie:

  • Mersenne Twister
  • Linear Feedback Shift Register (LFSR)
  • Blum Blum Shub

Seeding des Zufallszahlengenerators

Vorher Wenn Sie rand() verwenden, müssen Sie den Zufallszahlengenerator durch Aufrufen von srand() initialisieren. Normalerweise wird dies erreicht durch:

srand (static_cast<unsigned> (time(0)));
Nach dem Login kopieren

Denken Sie daran, die entsprechenden Header #include:

  • für Rand und Srand
  • für die Zeit

Durch die Einhaltung dieser Richtlinien können Sie in C effektiv zufällige Floats für verschiedene Anwendungen generieren, von Simulationen bis hin zur Datenanalyse.

Das obige ist der detaillierte Inhalt vonWie kann ich zufällige Gleitkommazahlen in C effektiv generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage