Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menjana Nombor Rawak Unik dalam C#?

Bagaimanakah Saya Boleh Menjana Nombor Rawak Unik dalam C#?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-21 13:21:10189semak imbas

How Can I Generate Unique Random Numbers in C#?

Menjana nombor rawak unik dalam C#

Soalan:

Pembangun C# sering menghadapi cabaran menjana nombor rawak yang unik. Walaupun anda menggunakan System.Random dan DateTime.Now.Ticks sebagai benih, anda mungkin menghadapi masalah dengan nombor pendua. Bolehkah anda mencadangkan cara alternatif untuk menyelesaikan masalah ini?

Jawapan:

Walaupun Random.Next tidak menjamin keunikan, penyelesaian mudah ialah mengekalkan senarai nombor yang dijana. Algoritma di bawah menunjukkan cara untuk mencapai ini:

<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>

Kod ini memulakan contoh Rawak (tiada panggilan GetHashCode diperlukan kerana ia dilakukan secara dalaman secara lalai) dan senarai untuk menyimpan nombor yang dijana. Fungsi NewNumber menjana nombor rawak antara 0 dan 9. Jika nombor itu tiada dalam senarai, ia ditambah pada senarai, sekali gus memastikan keunikan nombor dalam julat yang diberikan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Nombor Rawak Unik dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn