| Liste Articles: [0-A] [A-C] [C-F] [F-J] [J-M] [M-P] [P-S] [S-Z] | Liste Catégories | Une page au hasard | Pages liées | ||||||
En mathématiques, la factorielle d'un entier naturel n, notée n!, est le produit des nombres entiers strictement positifs inférieurs ou égaux à n. Ce qui s'écrit :

Exemples :
La définition de la factorielle sous forme de produit rend naturelle la convention 0!=1 puisque 0! est un produit vide, c'est-à-dire réduit à l'élément neutre de la multiplication. Cela permet à de nombreuses formules de ne pas avoir d'exception.
La factorielle joue un rôle important en algèbre combinatoire parce qu'il y a n! façons différentes de permuter n objets. Elle apparaît dans de nombreuses formules en mathématiques, comme par exemple la formule du binôme et la formule de Taylor.
La formule de Stirling donne un équivalent de n! quand n est grand :

Pour tout entier n, on a où Γ est la fonction gamma d'Euler. La fonction Γ permet donc de prolonger la factorielle à l'ensemble des nombres complexes privé des entiers strictement négatifs.
La factorielle d'un nombre peut être calculée en utilisant un algorithme récursif ou itératif.
Écrivons en langage Scheme, proche du Lisp, un programme récursif donnant la factorielle d'un entier :
(define fact (lambda (x) (if (= x 0) 1 (* x (fact (- x 1))))))
Ce programme n'est pas efficace à l'exécution, pour les grands entiers.
De la même manière, en langage C, de façon récursive :
int factorielle_recursive(int n)
{
if (n == 0)
return 1;
else
return n * factorielle_recursive(n-1);
}
Et de façon itérative:
int factorielle_iterative(int n)
{
int res;
for (res = 1; n > 1; n--)
res *= n;
return res;
}
Ces fonctions ne permettent pas de calculer la factorielle d'un nombre supérieur à 12 si les entiers sont limités à 32 bits, car le résultat dépasse la place disponible. Par souci de clarté, les programmes ci-dessus sont dépourvus de traitement des entrées sorties.


