Tutoriel PHP et GMP : Comment calculer la permutation totale de grands nombres
Introduction
En informatique, la permutation totale fait référence à tous les arrangements possibles d'un ensemble d'éléments. Pour les combinaisons d'éléments à petite échelle, nous pouvons utiliser la récursivité ou l'itération pour implémenter l'algorithme de permutation complet. Cependant, lorsqu’il s’agit de grands nombres, comme les nombres supérieurs à 100 chiffres, les algorithmes traditionnels sont insuffisants. Dans ce tutoriel, nous expliquerons comment utiliser PHP et l'extension GMP pour calculer la permutation totale de grands nombres.
Introduction à l'extension GMP
GMP (GNU Multiple Precision) est une bibliothèque d'opérations sur de grands nombres dans le projet GNU, fournissant des opérations sur les nombres entiers et à virgule flottante de haute précision. GMP ne dépend pas du nombre de bits du processeur, il peut donc gérer un grand nombre d'opérations avec n'importe quel nombre de bits. En PHP, on peut utiliser la bibliothèque GMP via l'extension GMP.
Installer l'extension GMP
Avant de commencer, nous devons nous assurer que l'extension GMP est installée dans notre environnement PHP. S'il n'est pas installé, veuillez suivre les étapes ci-dessous pour l'installer :
Ouvrez un terminal ou une invite de commande et entrez la commande suivante pour télécharger la bibliothèque GMP :
sudo apt-get install libgmp-dev
Exécutez la commande suivante pour installer l'extension GMP. :
sudo pecl install gmp
dans php.ini Ajoutez la ligne suivante au fichier pour activer l'extension GMP :
extension=gmp.so
Calculez la permutation totale des grands nombres
Voici un exemple de code qui utilise les extensions PHP et GMP pour calculer la permutation totale des grands nombres :
<?php function factorial($n) { $result = gmp_init(1); for ($i = 2; $i <= $n; $i++) { $result = gmp_mul($result, $i); } return $result; } function permutations($n) { $factorial = factorial(strlen($n)); $counts = array_count_values(str_split($n)); foreach ($counts as $count) { $factorial = gmp_div_q($factorial, factorial($count)); } return $factorial; } $number = "1234567890"; $permutationCount = permutations($number); echo "数字 {$number} 的全排列个数为:{$permutationCount}"; ?>
Dans le code ci-dessus, nous définissons deux fonctions. La fonction factorial
est utilisée pour calculer la factorielle d'un nombre. Nous utilisons les fonctions gmp_init
et gmp_mul
pour gérer des opérations sur un grand nombre. La fonction permutations
calcule d'abord la contribution des nombres répétés dans le nombre à la permutation totale, puis calcule le nombre de permutations totales en divisant par la factorielle correspondante. factorial
函数用于计算一个数的阶乘,我们使用GMP的gmp_init
和gmp_mul
函数来处理大数运算。permutations
函数首先计算数字中重复数字对全排列的贡献,然后通过除以相应的阶乘计算全排列的个数。
最后,我们给定一个数字1234567890
作为示例输入,计算其全排列的个数,并通过echo
1234567890
comme exemple d'entrée, calculons le nombre de toutes les permutations et générons le résultat via l'instruction echo
.
Résumé
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!