Génération d'écarts normaux aléatoires dans C/C
Générer des nombres aléatoires qui suivent une distribution normale est une tâche courante dans diverses applications. En C/C, il existe plusieurs approches pour y parvenir sans recourir à des bibliothèques externes comme Boost.
Une méthode largement utilisée est la transformée de Box-Muller, qui transforme deux nombres aléatoires uniformément distribués en une paire de nombres normalement distribués. nombres aléatoires. La formule mathématique est la suivante :
x = sqrt(-2 * ln(u1)) * cos(2 * M_PI * u2) y = sqrt(-2 * ln(u1)) * sin(2 * M_PI * u2)
où u1 et u2 sont des nombres aléatoires uniformément distribués dans la plage [0, 1]. Pour générer un seul écart normal aléatoire, générez une paire à l'aide de la transformation Box-Muller et renvoyez l'une d'elles, en stockant l'autre pour une utilisation ultérieure.
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!