Elakkan pertindihan: C# penjana nombor rawak
Kod anda direka untuk menjana enam nombor rawak antara 1 dan 49. Walau bagaimanapun, nombor ini mungkin mengandungi pendua, yang tidak boleh diterima dalam senario seperti loteri. Untuk menyelesaikan masalah ini, kami akan meneroka cara yang cekap untuk menjana nombor rawak unik dalam C#.
Penyelesaian:
Simpan nombor yang dijana dalam koleksi. Setiap kali nombor baharu dijana, semak sama ada ia sudah wujud dalam set. Jika ia wujud, teruskan menjana nombor lain sehingga anda menemui nombor unik.
Berikut ialah versi diubah suai kod anda yang melaksanakan penyelesaian ini:
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); } }
Sebagai alternatif, kami boleh menggunakan strategi berikut:
Kocok dek dan pilih kaedah:
Berikut ialah kod untuk pendekatan ini:
var rnd = new Random(); var randomNumbers = Enumerable.Range(1, 49).OrderBy(x => rnd.Next()).Take(6).ToList();
Pendekatan ini menjamin penjanaan nombor rawak yang unik tanpa memerlukan gelung tersuai atau semakan tambahan untuk pendua.
Atas ialah kandungan terperinci Bagaimana untuk Menjana Enam Nombor Rawak Unik dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!