問題:
如何寫一個程序,產生六個唯一的彩票號碼,確保一行中沒有重複的號碼?
初始程式碼片段:
<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中文網其他相關文章!