Menjana Semua Gabungan Menggunakan Algoritma dalam PHP
Salah satu tugas asas dalam sains komputer ialah menjana gabungan daripada set tertentu. Dalam konteks ini, gabungan merujuk kepada subset unsur daripada set asal, dengan saiz yang ditentukan.
Sebagai contoh, pertimbangkan set A = {A, B, C}. Begini cara kita boleh mendapatkan gabungan pelbagai saiz:
Menjana Gabungan Menggunakan Algoritma Rekursif
Untuk menangani masalah ini, kami boleh menggunakan algoritma rekursif yang meneroka semua kemungkinan kombinasi . Berikut ialah pecahan langkah demi langkah:
Pelaksanaan dalam PHP
function sampling($chars, $size, $combinations = []) { if (empty($combinations)) { $combinations = $chars; } if ($size == 1) { return $combinations; } $new_combinations = []; foreach ($combinations as $combination) { foreach ($chars as $char) { $new_combinations[] = $combination . $char; } } return sampling($chars, $size - 1, $new_combinations); }
Contoh
Mari kita pertimbangkan set asal kami A = {A, B, C}.
$chars = ['A', 'B', 'C']; $output = sampling($chars, 2); var_dump($output);
Output
array(9) { [0]=> string(2) "AA" [1]=> string(2) "AB" [2]=> string(2) "AC" [3]=> string(2) "BA" [4]=> string(2) "BB" [5]=> string(2) "BC" [6]=> string(2) "CA" [7]=> string(2) "CB" [8]=> string(2) "CC" }
Algoritma ini menyediakan pendekatan sistematik untuk menjana semua kombinasi saiz tertentu daripada set tertentu. Sifat rekursifnya membolehkan penerokaan cekap semua kombinasi yang mungkin, tanpa mengira saiz set input.
Atas ialah kandungan terperinci Bagaimanakah saya boleh menjana semua kombinasi set yang diberikan dalam PHP menggunakan algoritma rekursif?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!