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

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

DDD
發布: 2025-01-12 13:37:46
原創
890 人瀏覽過

How to Generate Six Unique Random Numbers in C#?

避免重複: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>
登入後複製

或者,我們可以採取以下策略:

洗牌並選擇法:

  1. 建立一個從1到49的數字序列。
  2. 使用隨機函數對序列進行洗牌。
  3. 從洗牌後的序列中選出前六個數字。

以下是這種方法的程式碼:

<code class="language-csharp">var rnd = new Random();
var randomNumbers = Enumerable.Range(1, 49).OrderBy(x => rnd.Next()).Take(6).ToList();</code>
登入後複製

這種方法保證了唯一隨機數的生成,無需自訂循環或額外檢查重複項。

以上是如何在 C# 中產生六個唯一的隨機數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板