Jana nombor rawak unik dalam C#
Dalam pembangunan aplikasi yang perlu menjana nombor unik rawak, pembangun sering menghadapi masalah dengan kelas System.Random. Walaupun anda menggunakan DateTime.Now.Ticks sebagai benih, mungkin masih terdapat nombor pendua.
Selesaikan masalah nilai pendua
System.Random.Next() sendiri tidak menjamin keunikan nombor yang dijana. Apabila digabungkan dengan julat yang lebih sempit (cth. 0 hingga 10), kebarangkalian untuk menemui nilai pendua adalah lebih tinggi.
Alternatif: Penyelenggaraan Senarai
Untuk mengatasi had ini, pendekatan yang lebih mantap ialah mengekalkan senarai nombor yang dijana. Penduaan boleh dielakkan dengan menyemak sama ada nombor berpotensi sudah wujud dalam senarai.
Berikut ialah pelaksanaan yang diubah suai menggunakan strategi ini:
<code class="language-csharp">public Random a = new Random(); public 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>
Pendekatan ini memastikan penciptaan nilai yang benar-benar unik dengan mengekalkan senarai nombor yang dijana dan menapis pendua.
Atas ialah kandungan terperinci Bagaimana untuk Menjana Nombor Rawak Tidak Berulang dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!