Maison > développement back-end > C++ > Comment puis-je générer des nombres aléatoires à virgule flottante en C ?

Comment puis-je générer des nombres aléatoires à virgule flottante en C ?

Susan Sarandon
Libérer: 2024-12-25 09:25:17
original
299 Les gens l'ont consulté

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

Génération de nombres aléatoires à virgule flottante en C

En C , la fonction rand() sert d'outil fiable pour créer des nombres pseudo-aléatoires. En le combinant avec RAND_MAX et en effectuant des opérations mathématiques simples, vous pouvez générer des flottants aléatoires dans des intervalles spécifiés. Pour les programmes récréatifs et à des fins éducatives, cette approche suffit. Cependant, si votre besoin exige des nombres véritablement aléatoires avec une distribution normale, envisagez de mettre en œuvre des techniques plus sophistiquées.

Générer des flottants de 0,0 à 1,0

Pour obtenir un flottant aléatoire entre 0,0 et 1,0 (inclus), employer la formule suivante :

float r = static_cast<float>(rand()) / static_cast<float>(RAND_MAX);
Copier après la connexion

Générer des flotteurs dans un cadre arbitraire Plage

Pour générer un flottant dans la plage [0.0, X], utilisez la formule suivante :

float r2 = static_cast<float>(rand()) / (static_cast<float>(RAND_MAX) / X);
Copier après la connexion

Générer des flottants dans une plage personnalisée

Pour générer un flottant dans la plage [LO, HI], utilisez la formule suivante :

float r3 = LO + static_cast<float>(rand()) / (static_cast<float>(RAND_MAX) / (HI - LO));
Copier après la connexion

Initialisation du nombre aléatoire Générateur

Avant d'utiliser rand(), il est crucial d'initialiser le générateur de nombres aléatoires en appelant srand(). Cette initialisation ne doit avoir lieu qu'une seule fois lors de l'exécution du programme, et non à chaque appel à rand(). Une pratique courante implique :

srand(static_cast<unsigned>(time(0)));
Copier après la connexion

Inclusions de fichiers d'en-tête

Notez que les inclusions de fichiers d'en-tête suivantes sont nécessaires :

  • pour appeler rand() et srand()
  • pour l'heure d'appel()

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal