Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bila hendak menggunakan Penggantian vs. Bukan Penggantian dalam Pemilihan Rawak Berwajaran?

Bila hendak menggunakan Penggantian vs. Bukan Penggantian dalam Pemilihan Rawak Berwajaran?

Linda Hamilton
Linda Hamiltonasal
2024-10-24 10:03:02395semak imbas

When to Use Replacement vs. Non-Replacement in Weighted Random Selection?

Pemilihan Rawak Berwajaran: Penggantian lwn. Bukan Penggantian

Pemilihan rawak berwajaran ialah teknik asas yang digunakan dalam pelbagai aplikasi. Ia melibatkan elemen pensampelan daripada senarai yang diberikan dengan taburan kebarangkalian ditentukan oleh pemberat tertentu. Apabila memilih elemen dengan penggantian, setiap item boleh dipilih beberapa kali, yang membawa kepada kemungkinan yang lebih tinggi untuk memilih item dengan berat yang lebih tinggi. Sebaliknya, pemilihan tanpa penggantian mengehadkan pemilihan item setelah ia dipilih.

Mencari algoritma yang cekap untuk pemilihan rawak berwajaran, terutamanya dengan penggantian, boleh menjadi mencabar. Kaedah sedia ada, termasuk algoritma takungan yang diubah suai, terbukti tidak sesuai untuk pemilihan pecahan yang ketara daripada saiz senarai kecil.

Pendekatan Cekap: Kaedah Alias

Satu pendekatan yang cemerlang dalam senario ini ialah kaedah alias. Teknik ini mencipta set tong sampah berstruktur, setiap satu mewakili sebahagian daripada senarai berwajaran. Dengan menggunakan operasi bit, tong sampah boleh diindeks dengan cekap, mengelakkan carian binari. Setiap tong mengandungi dua elemen daripada senarai asal, membolehkan perwakilan pengedaran yang cekap.

Sebagai contoh, pertimbangkan senarai lima pilihan yang sama wajaran: (a:1, b:1, c:1, d: 1, e:1). Kaedah alias mencipta satu set lapan tong sampah, setiap satu dengan jisim kebarangkalian 0.125.

  1. Penormalan: Laraskan pemberat kepada jumlah kepada 1.0. Dalam kes ini, (a:0.2 b:0.2 c:0.2 d:0.2 e:0.2).
  2. Partition: Peruntukkan tong dengan berat lebih rendah daripada kebarangkalian partition (0.125), bermula dengan berat paling rendah. Di sini, (p1{a|null,1.0},p2,p3,p4,p5,p6,p7,p8).
  3. Pengisian: Isi ruang yang tinggal dalam partition dengan yang tertinggi pembolehubah berat. Contohnya, (p1{a|null,1.0},p2{a|b,0.6},p3,p4,p5,p6,p7,p8).

Pemilihan Masa Jalanan:

Pada masa jalankan, kami menjana nombor rawak dan menggunakan operasi bit untuk menentukan tong yang sepadan dengan taburan kebarangkalian dengan cekap. Jika tong dipecah, kami menggunakan bahagian perpuluhan nombor rawak untuk memilih antara dua elemen dalam tong.

Ringkasnya, kaedah alias menyediakan teknik yang cekap untuk pemilihan rawak berwajaran dengan penggantian. Ia menggunakan operasi bit untuk pengindeksan bin pantas dan mencapai pengagihan kebarangkalian yang tepat dengan membahagikan pemberat dengan teliti ke dalam tong yang boleh diurus.

Atas ialah kandungan terperinci Bila hendak menggunakan Penggantian vs. Bukan Penggantian dalam Pemilihan Rawak Berwajaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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