首頁 >後端開發 >C++ >如何產生唯一且不重複的隨機數?

如何產生唯一且不重複的隨機數?

Barbara Streisand
Barbara Streisand原創
2025-01-12 13:47:43749瀏覽

How Can I Generate Unique Random Numbers Without Duplicates?

避免重複的隨機數產生器

在產生彩票或其他場景的隨機數時,確保同一行中的數字唯一至關重要。最初提供的程式碼未能解決此問題,可能導致重複。

解重複問題

為了解決這個問題,必須將產生的數字儲存在一個集合中。每次選擇一個新數字時,請檢查它是否已存在於集合中。如果存在,則產生一個新數字,直到找到一個唯一的數字為止。

使用不同的方法

或者,更有效的方法是產生 1 到 49 之間的數字序列,隨機打亂它們,然後從打亂的序列中選擇前六個數字。這確保了唯一性,無需不斷檢查。

以下是使用此方法改進的程式碼:

<code>var rnd = new Random();
var randomNumbers = Enumerable.Range(1, 49).OrderBy(x => rnd.Next()).Take(6).ToList();</code>

此程式碼產生一個隨機序列,然後對其進行洗牌並選擇前六個數字,保證沒有重複。

以上是如何產生唯一且不重複的隨機數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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