Rumah > pembangunan bahagian belakang > C++ > Mengapa penjana nombor rawak saya hanya menghasilkan satu nombor, dan bagaimana saya boleh memperbaikinya?

Mengapa penjana nombor rawak saya hanya menghasilkan satu nombor, dan bagaimana saya boleh memperbaikinya?

Linda Hamilton
Lepaskan: 2025-02-03 08:21:08
asal
654 orang telah melayarinya

Why Does My Random Number Generator Only Produce One Number, and How Can I Fix It?

penjana nombor rawak hanya menghasilkan satu masalah dan penyelesaian nombor rawak

Artikel ini membincangkan fungsi penjana nombor rawak

hanya satu nombor rawak yang dihasilkan. Sebab akar masalah adalah bahawa fungsi ini mencipta contoh

baru pada setiap panggilan. Oleh kerana keadaan dalaman contoh adalah berdasarkan pada inisialisasi jam sistem, dalam kitaran rapat, pelbagai panggilan akan mendapat nilai yang sama. RandomNumber Random Untuk menyelesaikan masalah ini dan pastikan ketepatan nombor rawak, contoh Random harus dibuat dan digunakan semula. Kod berikut menunjukkan cara mencapai:

Random Dengan menggunakan pernyataan , kami menyegerakkan lawatan

contoh untuk memastikan bahawa setiap kali
private static readonly Random random = new Random();
private static readonly object syncLock = new object();

public static int RandomNumber(int min, int max)
{
    lock (syncLock)
    {
        return random.Next(min, max);
    }
}
Salin selepas log masuk
akan menghasilkan nombor rawak yang unik dalam baris yang sama.

lock Kaedah lain adalah menggunakan Random pembolehubah untuk mengekalkan contoh RandomNumber untuk setiap benang untuk mengelakkan penyegerakan:

Atas ialah kandungan terperinci Mengapa penjana nombor rawak saya hanya menghasilkan satu nombor, dan bagaimana saya boleh memperbaikinya?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan