Soalan:
Bagaimana untuk menulis program untuk menjana enam nombor loteri unik, memastikan tiada nombor pendua berturut-turut?
Coretan kod awal:
<code class="language-csharp">// 使用随机数对象生成6个随机数 int randomNumber1 = random.Next(1, 49); int randomNumber2 = random.Next(1, 49); int randomNumber3 = random.Next(1, 49); int randomNumber4 = random.Next(1, 49); int randomNumber5 = random.Next(1, 49); int randomNumber6 = random.Next(1, 49); textBox1.Text = randomNumber1.ToString(); textBox2.Text = randomNumber2.ToString(); textBox3.Text = randomNumber3.ToString(); textBox4.Text = randomNumber4.ToString(); textBox5.Text = randomNumber5.ToString(); textBox6.Text = randomNumber6.ToString();</code>
Soalan:
Coretan kod awal boleh menjana nombor rawak, tetapi mungkin terdapat nombor pendua dalam baris yang sama.
Penyelesaian:
Untuk menjana nombor rawak yang unik, kita perlu menyimpan nombor yang dijana dalam koleksi dan menyemak sama ada setiap nombor rawak baharu sudah wujud. Jika pendua ditemui, nombor rawak baharu dijana sehingga nombor unik ditemui.
Sebagai alternatif, kita boleh menggunakan pendekatan yang lebih cekap: jana jujukan nombor antara 1 dan 49, kocok menggunakan kaedah OrderBy dan rnd.Next(), dan kemudian pilih enam nombor pertama daripada jujukan kocok.
<code class="language-csharp">var rnd = new Random(); var randomNumbers = Enumerable.Range(1, 49).OrderBy(x => rnd.Next()).Take(6).ToList();</code>
Atas ialah kandungan terperinci Bagaimana untuk Menjana Enam Nombor Loteri Rawak Unik dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!