Menjana nombor rawak unik adalah penting dalam banyak tugas pengaturcaraan. Walau bagaimanapun, kelas System.Random
terbina dalam C# tidak semestinya menjamin keunikan. Ini boleh membawa kepada nombor pendua, seperti yang ditemui oleh seorang pembangun, walaupun ketika kejadian Random
diisytiharkan di luar fungsi.
Masalah dan Penyelesaian yang Lebih Baik:
Benih yang digunakan dengan Random.Next()
tidak mengawal keunikan secara langsung. Berikut ialah strategi yang lebih berkesan:
Memanfaatkan Koleksi untuk Keunikan:
public Random a = new Random(); public List<int> randomList = new List<int>(); int MyNumber = 0; private void GenerateUniqueNumber() { MyNumber = a.Next(0, 10); if (!randomList.Contains(MyNumber)) randomList.Add(MyNumber); }
Membina Penjana Nombor Rawak Tersuai:
Meneroka Perpustakaan Alternatif:
Beberapa alternatif menawarkan penjanaan nombor rawak yang dipertingkatkan:
RandomNumberGenerator
: Pilihan yang lebih selamat dari segi kriptografi.Guid.NewGuid()
: Menjana pengecam unik global (GUID), sesuai apabila keunikan berurutan tidak penting.System.Numerics.Tensors
: Menyediakan kaedah pensampelan rawak untuk pelbagai pengedaran.Pendekatan terbaik bergantung pada keperluan aplikasi, kekangan prestasi dan tahap rawak yang diperlukan.
Atas ialah kandungan terperinci Bagaimana Saya Boleh Menjana Nombor Rawak Unik dalam C# Apabila System.Random Gagal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!