Jana Nombor Rawak Berwajaran: Alternatif Cekap untuk Pensampelan Penolakan
Manakala pensampelan penolakan ialah pendekatan yang mudah untuk memilih nombor rawak dengan kebarangkalian berwajaran , ia mungkin bukan penyelesaian yang paling berkesan dalam semua senario. Berikut ialah dua strategi alternatif dengan ciri prestasi yang berbeza:
Jadual Carian Masa Malar (melalui Fungsi Pesanan Tinggi)
Pendekatan ini melibatkan mencipta jadual carian daripada berat spesifikasi dan mengembalikan fungsi yang mengambil nilai daripada jadual. Faedahnya termasuk:
Walau bagaimanapun, strategi ini memerlukan masa linear untuk membina jadual dan mungkin menggunakan memori yang ketara untuk spesifikasi atau pemberat yang besar dengan nilai yang kecil atau tepat.
Penjumlahan Berulang
Dalam strategi ini, nombor rawak dijana dalam julat [0,1) dan secara berulang dibandingkan dengan jumlah terkumpul pemberat. Jika nombor rawak berada dalam jumlah kumulatif untuk nilai tertentu, nilai itu dikembalikan. Kelebihan pendekatan ini termasuk:
Walau bagaimanapun, pendekatan ini mungkin lebih intensif secara pengiraan daripada carian masa malar.
Kesimpulan
Pilihan pendekatan bergantung pada keperluan khusus aplikasi. Carian masa tetap sesuai untuk senario kritikal prestasi, manakala penjumlahan berulang lebih sesuai untuk senario dengan spesifikasi besar atau pemberat dengan nilai kecil atau tepat.
Atas ialah kandungan terperinci Pendekatan manakah yang Terbaik untuk Menjana Nombor Rawak Berwajaran: Jadual Carian atau Penjumlahan Berulang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!