避免重複:C#隨機數產生器
你的程式碼旨在產生六個介於1到49之間的隨機數。然而,這些數字可能包含重複項,這在類似彩票的場景中是不可接受的。為了解決這個問題,我們將探討在C#中產生唯一隨機數的有效方法。
解:
將產生的數字儲存在一個集合中。每次產生一個新數字時,請檢查它是否已存在於集合中。如果存在,則繼續產生另一個數字,直到找到一個唯一的數字為止。
以下是你的程式碼的修改版本,它實作了此解決方案:
<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>
或者,我們可以採取以下策略:
洗牌並選擇法:
以下是這種方法的程式碼:
<code class="language-csharp">var rnd = new Random(); var randomNumbers = Enumerable.Range(1, 49).OrderBy(x => rnd.Next()).Take(6).ToList();</code>
這種方法保證了唯一隨機數的生成,無需自訂循環或額外檢查重複項。
以上是如何在 C# 中產生六個唯一的隨機數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!