问题:
如何编写一个程序,生成六个唯一的彩票号码,确保一行中没有重复的号码?
初始代码片段:
<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>
问题:
初始代码片段可以生成随机数,但同一行中可能会出现重复的数字。
解决方案:
为了生成唯一的随机数,我们需要将生成的数字存储在一个集合中,并检查每个新的随机数是否已存在。如果发现重复,则生成一个新的随机数,直到找到一个唯一的数字为止。
或者,我们可以使用一种更高效的方法:生成一个1到49之间的数字序列,使用OrderBy和rnd.Next()方法对其进行洗牌,然后从洗牌后的序列中选择前六个数字。
<code class="language-csharp">var rnd = new Random(); var randomNumbers = Enumerable.Range(1, 49).OrderBy(x => rnd.Next()).Take(6).ToList();</code>
以上是如何在 C# 中生成六个唯一的随机彩票号码?的详细内容。更多信息请关注PHP中文网其他相关文章!