Maison >développement back-end >C++ >Comment puis-je générer des 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.
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);
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);
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));
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)));
Notez que les inclusions de fichiers d'en-tête suivantes sont nécessaires :
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!