Jana Nombor Rawak Berwajaran
Pengenalan
Dalam pelbagai aplikasi, selalunya perlu pilih nombor rawak daripada satu set pilihan, di mana setiap pilihan diberikan kebarangkalian tertentu untuk dipilih. Konsep ini dikenali sebagai menjana nombor rawak berwajaran.
Pendekatan Persampelan Penolakan
Salah satu kaedah menjana nombor rawak berwajaran adalah melalui pensampelan penolakan. Pendekatan ini melibatkan mencipta jadual carian di mana setiap pilihan muncul seberapa banyak kali berat yang ditetapkan. Sebagai contoh, jika pilihan A mempunyai kebarangkalian 80%, ia akan muncul dalam jadual carian sebanyak 80 kali. Untuk menjana nombor rawak, lokasi rawak dalam jadual dipilih, dan pilihan yang sepadan dikembalikan.
Kebaikan dan Kelemahan Pensampelan Penolakan
Persampelan penolakan menyediakan pemalar -prestasi masa untuk memilih nombor rawak selepas jadual carian dibina. Walau bagaimanapun, ia memerlukan prestasi algoritmik linear untuk membina jadual, yang boleh menjadi masalah untuk set pilihan yang besar atau yang mempunyai pemberat yang sangat tepat.
Pendekatan Penjumlahan Berat Berulang
Pendekatan alternatif ialah penjumlahan berat berulang. Di sini, nombor rawak dijana dalam julat [0,1) dan dibandingkan dengan jumlah terkumpul pemberat. Pilihan yang dikaitkan dengan berat yang melebihi nombor rawak dipilih sebagai nombor rawak berwajaran.
Kebaikan dan Kelemahan Penjumlahan Berat Berulang
Berbanding pensampelan penolakan, berulang penjumlahan berat tidak mempunyai kos pendahuluan tetapi mempunyai prestasi algoritma purata linear berhubung dengan bilangan pilihan dalam set. Ia juga mengandaikan bahawa pemberat dijumlahkan kepada satu.
Pertimbangan Pelaksanaan
Apabila melaksanakan pendekatan ini, adalah disyorkan untuk mencipta fungsi tertib lebih tinggi yang memerlukan spesifikasi pemberat dan mengembalikan fungsi yang menjana nombor rawak berwajaran. Ini membolehkan kebolehgunaan semula dan mengelakkan overhed membina jadual carian atau mengumpul pemberat beberapa kali.
Atas ialah kandungan terperinci Cara Menjana Nombor Rawak Berwajaran: Pensampelan Penolakan lwn. Penjumlahan Berat Berulang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!