Pemilihan Rawak Berwajaran di Jawa
Apabila memilih item rawak daripada set, selalunya wajar untuk memihakkan pemilihan ke arah item yang mempunyai kaitan yang lebih tinggi berat. Di Java, ini boleh dicapai menggunakan NavigableMap, struktur data khusus yang disesuaikan khusus untuk tujuan ini.
Kelas RandomCollection, dilaksanakan menggunakan NavigableMap, membenarkan item berwajaran ditambah dan mendapatkan semula item rawak berdasarkan masing-masing berat. Untuk membuat RandomCollection, hanya tentukan penjana rawak (pilihan, atau gunakan Random lalai).
Menambah item pada RandomCollection adalah mudah. Setiap item dikaitkan dengan berat, yang mewakili kebarangkalian untuk dipilih. Jumlah berat dikekalkan apabila item baharu ditambah.
Untuk memilih item rawak, nombor rawak antara 0 dan jumlah berat dijana. Kaedah higherEntry() NavigableMap kemudiannya digunakan untuk mendapatkan entri pertama dengan berat lebih besar daripada nombor rawak. Nilai yang dikaitkan dengan entri ini ialah item yang dipilih secara rawak.
Contoh:
RandomCollection<String> rc = new RandomCollection<>(); rc.add(40, "dog").add(35, "cat").add(25, "horse"); for (int i = 0; i < 10; i++) { System.out.println(rc.next()); }
Kod ini akan menjana urutan rawak haiwan ("anjing", "kucing", "kuda" ) ditimbang mengikut kebarangkalian mereka.
Atas ialah kandungan terperinci Bagaimanakah saya boleh melaksanakan Pemilihan Rawak Berwajaran di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!