Parmi les fonctions fondamentales des mathématiques discrètes, le factoriel occupe une place particulièrement importante. Cette fonction, notée par un point d'exclamation placé après un nombre entier, est utilisée dans de nombreux domaines tels que les probabilités, les statistiques, la combinatoire, l'algèbre et l'informatique théorique. Malgré son importance considérable dans les calculs mathématiques, il est étonnant de constater qu'elle n'est généralement pas intégrée directement aux bibliothèques de base de nombreux langages de programmation. Le langage C, pourtant réputé pour la richesse de sa bibliothèque mathématique standard, ne fait pas exception à cette règle. Le programmeur qui souhaite utiliser le factoriel doit donc généralement implémenter lui-même la fonction correspondante. Heureusement, la définition mathématique du factoriel est particulièrement simple et se prête naturellement à une implémentation élégante en programmation.
Le principe du factoriel consiste à multiplier un entier positif par tous les entiers positifs inférieurs ou égaux à lui-même. Ainsi, le factoriel de 5, noté 5!, correspond au calcul 5 × 4 × 3 × 2 × 1, ce qui donne 120. Par convention, le factoriel de 0 est égal à 1, une propriété essentielle dans de nombreuses démonstrations mathématiques et formules de combinatoire. Cette fonction apparaît notamment dans le calcul des permutations, des combinaisons, des coefficients binomiaux et de nombreuses séries mathématiques utilisées en analyse numérique. Une caractéristique remarquable du factoriel est sa croissance extrêmement rapide. Même pour des valeurs relativement modestes, les résultats deviennent rapidement très grands et dépassent facilement la capacité d'entreposage des types numériques classiques utilisés par les ordinateurs.
Le programme en langage C présenté ci-dessous montre une manière concise et efficace de calculer le factoriel d'un nombre entier à l'aide de la récursivité. La fonction Factoriel s'appelle elle-même avec une valeur décrémentée jusqu'à atteindre le cas de base correspondant aux valeurs 0 ou 1. Cette approche reflète directement la définition mathématique de la fonction et constitue un excellent exemple d'utilisation de la récursivité dans un programme. L'exemple fourni affiche successivement les premiers factoriels entiers afin d'illustrer la progression spectaculaire des résultats. On peut ainsi observer que les valeurs augmentent très rapidement, passant de quelques unités à plusieurs milliards en seulement quelques itérations. Cet exemple représente une excellente introduction aux fonctions récursives en langage C et permet également de mieux comprendre l'importance du factoriel dans de nombreux algorithmes mathématiques et scientifiques. Il démontre enfin comment une fonction apparemment simple peut jouer un rôle fondamental dans des domaines aussi variés que les probabilités, l'analyse combinatoire et les méthodes numériques avancées.
Voici un programme permettant de calculer le factoriel de nombre entier en C :
Essayer maintenant !
on obtiendra le résultat suivant :
Liste des 16 premiers factoriels entiers:0! est 1
1! est 1
2! est 2
3! est 6
4! est 24
5! est 120
6! est 720
7! est 5040
8! est 40320
9! est 362880
10! est 3628800
11! est 39916800
12! est 479001600
13! est 6227020800
14! est 87178291200
15! est 1307674368000