Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menjana Enam Nombor Rawak Unik dalam C#?

Bagaimana untuk Menjana Enam Nombor Rawak Unik dalam C#?

DDD
Lepaskan: 2025-01-12 13:37:46
asal
965 orang telah melayarinya

How to Generate Six Unique Random Numbers in C#?

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);
    }
}
Salin selepas log masuk

Sebagai alternatif, kami boleh menggunakan strategi berikut:

Kocok dek dan pilih kaedah:

  1. Buat urutan nombor dari 1 hingga 49.
  2. Kocok urutan menggunakan fungsi rawak.
  3. Pilih enam nombor pertama daripada urutan yang dikocok.

Berikut ialah kod untuk pendekatan ini:

var rnd = new Random();
var randomNumbers = Enumerable.Range(1, 49).OrderBy(x => rnd.Next()).Take(6).ToList();
Salin selepas log masuk

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!

Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan