Détermination de toutes les combinaisons de tailles spécifiées à partir d'un jeu de caractères
Cette enquête recherche un algorithme capable de générer toutes les combinaisons potentielles d'une certaine taille à partir de un ensemble de caractères donné. Examinons une solution utilisant une fonction récursive :
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); }
Considérons un exemple avec $chars = ['a', 'b', 'c'] :
$output = sampling($chars, 2); var_dump($output);
Le la sortie affiche toutes les combinaisons possibles de taille 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" }
Cette approche récursive génère efficacement toutes les combinaisons, garantissant que même des combinaisons de tailles plus grandes que l'ensemble initial sont acceptées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!