Maison >développement back-end >C++ >Comment puis-je générer des nombres aléatoires uniques sans doublons ?
Évitez les générateurs de nombres aléatoires en double
Lors de la génération de numéros aléatoires pour des billets de loterie ou d'autres scénarios, il est crucial de s'assurer que les numéros de la même ligne sont uniques. Le code initialement fourni ne résolvait pas ce problème et aurait pu entraîner une duplication.
Résoudre les problèmes de doublons
Pour résoudre ce problème, les numéros générés doivent être stockés dans une collection. Chaque fois qu'un nouveau numéro est sélectionné, vérifiez s'il existe déjà dans l'ensemble. S'il est présent, générez un nouveau numéro jusqu'à ce qu'un numéro unique soit trouvé.
Utilisez différentes méthodes
Alternativement, une approche plus efficace consiste à générer une séquence de nombres entre 1 et 49, à les mélanger au hasard, puis à sélectionner les six premiers nombres dans la séquence mélangée. Cela garantit l’unicité sans avoir besoin d’une vérification constante.
Voici le code amélioré utilisant cette méthode :
<code>var rnd = new Random(); var randomNumbers = Enumerable.Range(1, 49).OrderBy(x => rnd.Next()).Take(6).ToList();</code>
Ce code génère une séquence aléatoire, puis la mélange et sélectionne les six premiers nombres, garantis sans doublons.
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!