首頁 >後端開發 >C++ >如何在 C# 中產生唯一的隨機數?

如何在 C# 中產生唯一的隨機數?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-21 13:21:10143瀏覽

How Can I Generate Unique Random Numbers in C#?

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn