Générer des entiers aléatoires uniformément distribués dans une plage spécifiée est une tâche fondamentale dans de nombreuses applications de programmation. Bien qu'apparemment trivial, atteindre des exigences optimales en matière de vitesse, d'uniformité, de flexibilité et d'amorçage peut s'avérer difficile.
Pour répondre à ces préoccupations, la norme C 2011 a introduit une bibliothèque de nombres aléatoires robuste. L'extrait de code ci-dessous exploite les capacités de cette bibliothèque pour générer efficacement des entiers aléatoires uniformément distribués :
#include <random> std::random_device rd; // Only used once to initialise (seed) engine std::mt19937 rng(rd()); // Random-number engine used (Mersenne-Twister in this case) std::uniform_int_distribution<int> uni(min,max); // Guaranteed unbiased auto random_integer = uni(rng);
Cette approche offre plusieurs avantages :
En utilisant cette approche standardisée, les programmeurs peuvent efficacement générer des entiers aléatoires uniformément distribués sans avoir besoin de formules complexes ou d'implémentations personnalisé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!