Maison >développement back-end >C++ >Comment puis-je générer des nombres aléatoires uniques sans doublons ?

Comment puis-je générer des nombres aléatoires uniques sans doublons ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-12 13:47:43700parcourir

How Can I Generate Unique Random Numbers Without Duplicates?

É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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn