Maison >développement back-end >C++ >Comment puis-je générer efficacement des nombres flottants aléatoires en C ?
Pour votre dilemme spécifique, diviser la sortie de rand avec une constante n'est pas une approche robuste pour générer des flottants aléatoires. Bien qu'il puisse fournir des résultats approximatifs à des fins d'apprentissage, il ne convient pas aux applications sérieuses nécessitant des nombres aléatoires fiables.
Générer des flottants aléatoires à l'aide d'opérations mathématiques
Pour générer des nombres flottants de haute précision les flotteurs aléatoires en C , utilisent les fonctions fournies par la bibliothèque standard C. Par exemple, pour générer un flottant aléatoire entre 0,0 et 1,0, vous pouvez utiliser le code suivant :
float r = static_cast<float> (rand()) / static_cast<float> (RAND_MAX);
Si vous devez générer des flottants aléatoires dans un intervalle arbitraire, ajustez la formule en conséquence :
De 0,0 à X :
float r2 = static_cast<float> (rand()) / (static_cast<float> (RAND_MAX/X));
De LO à HI :
float r3 = LO + static_cast<float> (rand()) /( static_cast<float> (RAND_MAX/(HI-LO)));
Utilisation Générateurs de nombres véritablement aléatoires
Dans les scénarios où vous avez besoin de nombres véritablement aléatoires avec une distribution normale, envisagez d'utiliser des méthodologies plus avancées telles que :
Amorçage du générateur de nombres aléatoires
Avant d'utiliser rand(), vous devez initialiser le générateur de nombres aléatoires en appelant srand(). Généralement, cela se fait via :
srand (static_cast<unsigned> (time(0)));
N'oubliez pas d'#inclure les en-têtes appropriés :
En adhérant à ces directives, vous pouvez générer efficacement des flottants aléatoires en C pour diverses applications, des simulations à l'analyse de données.
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!