Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah Saya Boleh Menjana Semua Gabungan Saiz Tertentu daripada Set Aksara?
Menentukan Semua Gabungan Saiz Tertentu daripada Set Aksara
Siasatan ini mencari algoritma yang mampu menjana semua kombinasi potensi saiz tertentu daripada set watak yang diberikan. Mari kita mendalami penyelesaian menggunakan fungsi rekursif:
function sampling($chars, $size, $combinations = array()) { if (empty($combinations)) { $combinations = $chars; } if ($size == 1) { return $combinations; } $new_combinations = array(); foreach ($combinations as $combination) { foreach ($chars as $char) { $new_combinations[] = $combination . $char; } } return sampling($chars, $size - 1, $new_combinations); }
Pertimbangkan contoh dengan $chars = ['a', 'b', 'c']:
$output = sampling($chars, 2); var_dump($output);
The output memaparkan semua kemungkinan kombinasi saiz 2:
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" }
Pendekatan rekursif ini menjana semua kombinasi dengan berkesan, memastikan bahawa malah gabungan saiz yang lebih besar daripada set awal boleh dimuatkan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Semua Gabungan Saiz Tertentu daripada Set Aksara?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!