Calcul de toutes les permutations possibles
En mathématiques, une permutation est un arrangement d'objets dans un ordre spécifique. Ce concept est souvent rencontré lorsqu'il s'agit d'ensembles de nombres, où le nombre d'arrangements potentiels peut être vaste.
Considérez le scénario suivant : Vous disposez d'un ensemble de nombres de 0 à 8. Votre objectif est de générer tous permutations possibles de ces nombres, garantissant que chaque ensemble utilise tous les nombres exactement une fois.
Pour calculer le nombre de permutations, nous utilisons les permutations formule :
nPk = n!/(n-k)!
où n représente le nombre total d'éléments et k représente le nombre d'éléments sélectionnés. Dans ce cas, nous avons n = 9 éléments et k = 9, ce qui donne :
9P9 = 9! = 362880
Pour générer les permutations en PHP, nous pouvons utiliser l'algorithme décrit dans le "PHP Cookbook" d'O'Reilly (recette 4.26) :
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); } } } pc_permute(array(0, 1, 2, 3, 4, 5, 7, 8));
L'exécution de ce code produira les 362880 permutations possibles des nombres de 0 à 8.
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!