Question:
How to write a program to generate six unique lottery numbers, ensuring that there are no duplicate numbers in a row?
Initial code snippet:
// 使用随机数对象生成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();
Question:
The initial code snippet can generate random numbers, but there may be duplicate numbers in the same line.
Solution:
In order to generate unique random numbers, we need to store the generated numbers in a collection and check whether each new random number already exists. If duplicates are found, a new random number is generated until a unique number is found.
Alternatively, we can use a more efficient approach: generate a sequence of numbers between 1 and 49, shuffle it using the OrderBy and rnd.Next() methods, and then select from the shuffled sequence first six numbers.
var rnd = new Random(); var randomNumbers = Enumerable.Range(1, 49).OrderBy(x => rnd.Next()).Take(6).ToList();
The above is the detailed content of How to Generate Six Unique Random Lottery Numbers in C#?. For more information, please follow other related articles on the PHP Chinese website!