C#中產生唯一隨機數
問題:
C#開發者經常面臨產生唯一隨機數的挑戰。即使使用了System.Random和DateTime.Now.Ticks作為種子,也可能遇到重複數字的問題。您能提出解決這個問題的替代方法嗎?
答案:
雖然Random.Next不能保證唯一性,但一個簡單的解決方案是維護一個已產生數字的清單。下面的演算法示範如何實現這一點:
<code class="language-csharp">public Random a = new Random(); private List<int> randomList = new List<int>(); int MyNumber = 0; private void NewNumber() { MyNumber = a.Next(0, 10); if (!randomList.Contains(MyNumber)) randomList.Add(MyNumber); }</code>
這段程式碼初始化一個Random實例(無需GetHashCode調用,因為預設內部已完成)和一個用於儲存已產生數字的清單。 NewNumber函數會產生一個0到9之間的隨機數,如果該數不在列表中,則將其加到列表中,從而確保在給定範圍內數字的唯一性。
以上是如何在 C# 中產生唯一的隨機數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!