Maison >développement back-end >C++ >Comment générer six numéros de loterie aléatoires uniques en C# ?
Question :
Comment écrire un programme pour générer six numéros de loterie uniques, en garantissant qu'il n'y a pas de numéros en double dans une rangée ?
Extrait de code initial :
<code class="language-csharp">// 使用随机数对象生成6个随机数 int randomNumber1 = random.Next(1, 49); int randomNumber2 = random.Next(1, 49); int randomNumber3 = random.Next(1, 49); int randomNumber4 = random.Next(1, 49); int randomNumber5 = random.Next(1, 49); int randomNumber6 = random.Next(1, 49); textBox1.Text = randomNumber1.ToString(); textBox2.Text = randomNumber2.ToString(); textBox3.Text = randomNumber3.ToString(); textBox4.Text = randomNumber4.ToString(); textBox5.Text = randomNumber5.ToString(); textBox6.Text = randomNumber6.ToString();</code>
Question :
L'extrait de code initial peut générer des nombres aléatoires, mais il peut y avoir des nombres en double dans la même ligne.
Solution :
Afin de générer des nombres aléatoires uniques, nous devons stocker les nombres générés dans une collection et vérifier si chaque nouveau nombre aléatoire existe déjà. Si des doublons sont trouvés, un nouveau nombre aléatoire est généré jusqu'à ce qu'un numéro unique soit trouvé.
Alternativement, nous pouvons utiliser une approche plus efficace : générer une séquence de nombres entre 1 et 49, la mélanger à l'aide des méthodes OrderBy et rnd.Next(), puis sélectionner les six premiers nombres dans la séquence mélangée.
<code class="language-csharp">var rnd = new Random(); var randomNumbers = Enumerable.Range(1, 49).OrderBy(x => rnd.Next()).Take(6).ToList();</code>
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!