Éviter la duplication : générateur de nombres aléatoires C#
Votre code est conçu pour générer six nombres aléatoires compris entre 1 et 49. Cependant, ces numéros peuvent contenir des doublons, ce qui est inacceptable dans un scénario de type loterie. Pour résoudre ce problème, nous explorerons un moyen efficace de générer des nombres aléatoires uniques en C#.
Solution :
Stockez les numéros générés dans une collection. Chaque fois qu'un nouveau numéro est généré, vérifiez s'il existe déjà dans l'ensemble. S'il existe, continuez à générer un autre numéro jusqu'à ce que vous trouviez un numéro unique.
Voici une version modifiée de votre code qui implémente cette solution :
<code class="language-csharp">var randomNumbers = new List<int>(); var random = new Random(); while (randomNumbers.Count < 6) { int randomNumber = random.Next(1, 50); // 生成1到49之间的随机数 if (!randomNumbers.Contains(randomNumber)) { randomNumbers.Add(randomNumber); } }</code>
Alternativement, nous pouvons adopter la stratégie suivante :
Mélangez le jeu et choisissez la méthode :
Voici le code de cette approche :
<code class="language-csharp">var rnd = new Random(); var randomNumbers = Enumerable.Range(1, 49).OrderBy(x => rnd.Next()).Take(6).ToList();</code>
Cette approche garantit la génération de nombres aléatoires uniques sans avoir besoin de boucles personnalisées ou de vérifications supplémentaires des 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!