Maison > développement back-end > tutoriel php > Combien de permutations existent pour un ensemble de nombres donné et comment peuvent-elles être générées en PHP ?

Combien de permutations existent pour un ensemble de nombres donné et comment peuvent-elles être générées en PHP ?

Mary-Kate Olsen
Libérer: 2024-12-13 20:54:21
original
373 Les gens l'ont consulté

How Many Permutations Exist for a Given Set of Numbers, and How Can They Be Generated in PHP?

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)!
Copier après la connexion

Dans ce cas, avec 9 nombres et en les choisissant tous (k=n), le nombre de permutations devient :

9P9 = 362,880
Copier après la connexion

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);
        }
    }
}
Copier après la connexion

L'appel de cette fonction avec l'ensemble de nombres, tels que :

pc_permute(array(0, 1, 2, 3, 4, 5, 7, 8));
Copier après la connexion

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
...
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal