Pendekatan manakah yang Terbaik untuk Menjana Nombor Rawak Berwajaran: Jadual Carian atau Penjumlahan Berulang?

Barbara Streisand
Lepaskan: 2024-11-11 00:27:02
asal
305 orang telah melayarinya

Which Approach is Best for Generating a Weighted Random Number: Lookup Table or Iterative Summation?

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:

  • Pemilihan nilai masa tetap
  • Pelaksanaan mudah menggunakan fungsi tertib lebih tinggi

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:

  • Tiada kos pembinaan meja hadapan
  • Purata prestasi linear kepada bilangan entri

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!

sumber:php.cn
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