Trouver tous les ensembles de nombres possibles à l'aide de permutations
Calculer tous les ensembles de nombres possibles à partir d'une plage donnée qui utilisent tous les nombres et permettent à chaque nombre de apparaître une seule fois implique le concept mathématique de permutations. La formule de permutation calcule le nombre d'arrangements ou d'ordres uniques d'un ensemble d'éléments.
Pour un ensemble de n nombres, où n ! représente la factorielle de n (n (n-1) (n-2) ... * 1), le nombre total de permutations est donné par :
nPk = n!/(n-k)!
Dans ce cas, avec 9 nombres et en les choisissant tous (k=n), le nombre de permutations devient :
9P9 = 362,880
Pour générer ces permutations en PHP, on peut utiliser ceci fonction fournie par le "PHP Cookbook" d'O'Reilly :
function pc_permute($items, $perms = array( )) { if (empty($items)) { print join(' ', $perms) . "\n"; } else { for ($i = count($items) - 1; $i >= 0; --$i) { $newitems = $items; $newperms = $perms; list($foo) = array_splice($newitems, $i, 1); array_unshift($newperms, $foo); pc_permute($newitems, $newperms); } } }
L'appel de cette fonction avec l'ensemble de nombres, tels que :
pc_permute(array(0, 1, 2, 3, 4, 5, 7, 8));
imprimera toutes les permutations possibles, y compris le exemples fournis :
0-1-2-3-4-5-6-7-8 0-1-2-3-4-5-6-8-7 0-1-2-3-4-5-8-6-7 0-1-2-3-4-8-5-6-7 0-1-2-3-8-4-5-6-7 0-1-2-8-3-4-5-6-7 ...
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!