Python

Comment calculer une factorielle avec Python ?

 Bienvenue dans ce tutoriel Python où nous allons vous montrer comment calculer la factorielle d’un nombre entier “n” en utilisant à la fois des boucles et la récursivité.

La multiplication X

Depuis votre enfance, vous avez développé des compétences en multiplication et trouvé du plaisir dans les calculs. Au fur et à mesure que vous progressez dans les mathématiques, la notion de factorielle se dévoilera davantage.

La multiplication implique de réaliser de multiples calculs et répétitions.

La factorielle est différente, elle crée une boucle infinie lorsque le calcul atteint zéro.

La factorielle en mathématique

En mathématiques, le terme “factorielle” fait référence au produit d’un nombre entier positif par tous les nombres entiers positifs qui sont égaux ou inférieurs à ce nombre donné.

Pour exprimer cette notion mathématique de manière plus formelle :

N ! = N × (N – 1) × (N – 2) × … × 3 × 2 × 1

Donc

4 ! = 4x3x2x1 = 24

En d’autres termes, calculer la factorielle d’un nombre consiste à effectuer une multiplication en utilisant tous les entiers de ce nombre jusqu’à 1 comme facteurs.

Il est essentiel de noter qu’en mathématiques la factorielle de 0, symbolisée par “0 !”, est par convention égale à 1. Cette règle est fondamentale pour rendre plus simples de nombreuses opérations mathématiques, en particulier lorsqu’il s’agit d’explorer des notions liées aux combinaisons et aux permutations.

0! = 1 ;
n! = n x (n – 1) !; où n > 0

Nous pouvons démontrer les deux énoncés comme suit :

 Démonstration de 0! = 1 :

   La factorielle de 0 est définie comme 0! = 1 par convention. C’est une règle de base en mathématiques pour éviter des problèmes dans divers calculs. Si nous n’admettions pas 0! = 1, cela entraînerait des incohérences dans certaines formules mathématiques.

 Démonstration

On va démontrer que n! = n x (n – 1)! où n > 0 : 

   Prenons un entier positif n quelconque. La factorielle de n, notée n!, est définie comme le produit de tous les entiers de 1 à n. Cela peut être formulé de la manière suivante :

   n! = 1 x 2 x 3 x … x n

   Maintenant, si nous retirons n de cette équation, nous obtenons la factorielle de (n-1) :

   (n – 1)! = 1 x 2 x 3 x … x (n – 1)

   Si nous multiplions ces deux équations, nous obtenons :

   n! x (n – 1)! = (1 x 2 x 3 x … x n) x (1 x 2 x 3 x … x (n – 1))

   Si nous simplifions cette équation, nous avons :

   n! x (n – 1)! = 1 x 2 x 3 x … x n x (n – 1)

   Et cela est équivalent à :

   n! x (n – 1)! = n x (1 x 2 x 3 x … x (n – 1))

   En d’autres termes :

   n! = n x (n – 1)!

Cela démontre que pour tout entier positif n, n! est égal à n multiplié par la factorielle de (n – 1).

La factorielle est fréquemment employée dans une branche des mathématiques connue sous le nom d’analyse combinatoire. En effet, si vous avez suivi des cours au lycée, vous êtes probablement familier avec le concept de factorielle.

 La notion de la récursivité

En mathématique:

De manière simplifiée, le calcul de la factorielle d’un nombre “n” consiste à remonter au calcul de la factorielle de “n-1” jusqu’à ce que l’on atteigne un point d’arrêt connu, qui est la factorielle de 0. En effet, cette approche est particulièrement bénéfique pour résoudre certains problèmes qui présentent une nature intrinsèquement récursive, ainsi que pour travailler avec des structures de données récursives telles que des listes et des arbres.

Python et l’application de la récursivité

En programmation, on applique la récursivité. Cette approche est une technique de programmation où vous “appelez” la même fonction de manière répétée jusqu’à atteindre la solution souhaitée.

Pour qu’une fonction soit utilisée de manière répétée, il est essentiel que la fonction renvoie son propre appel. Par exemple :

Calculer la factorielle en python

Le résultat de factorial(4) est 24.

Calculer la factorielle en python à l’aide de boucles While et for 

La méthode:

Afin de réaliser le calcul du produit : 1*2*3*…*(n-1) * n, nous développons un programme en Python qui interagit avec l’utilisateur pour obtenir un nombre entier, puis effectue le calcul de sa factorielle. 

  Les entrées

L’utilisateur sera invité à fournir un nombre entier et positif, que nous stockerons dans la variable “nombre”.

Nous stockons ce produit dans la variable “résultat”. Initialement, nous attribuons la valeur 1 à la variable “résultat”.

Nous allons maintenant utiliser une variable “count” comme compteur. En réalité, à chaque itération de la boucle WHILE, cette variable sera incrémentée de 1. À l’intérieur de la boucle while, nous multiplions “result” par “count” puisque “count” prendra les valeurs 1, 2, 3, …, jusqu’au nombre donné.

Lorsque “count” atteindra le nombre donné, la boucle WHILE devrait s’arrêter. Par conséquent, la condition du test WHILE devrait être la suivante : “count <= numero”, n’est-ce pas ?

Pour rappeler brièvement, il est important de noter que “résultat *= nombre” est équivalent à “résultat = résultat * nombre”. En d’autres termes, la nouvelle valeur de “résultat” est le produit de l’ancienne valeur par “nombre”.

De plus, “count += 1” signifie essentiellement “count = count + 1”. En d’autres termes, à chaque itération de la boucle WHILE, nous augmentons la valeur de “count” de 1.

Calculer la factorielle en utilisant une boucle FOR en Python 

La logique est essentiellement la même, car tout ce qu’une boucle WHILE peut accomplir, une boucle FOR le peut aussi, et vice versa. Cependant, le choix entre les deux dépend souvent de la situation.

La méthode

Dans ce cas précis, il est préférable d’utiliser une boucle FOR.

Pour résumer, l’idée est la suivante : nous devons effectuer plusieurs multiplications, allant de 1 jusqu’à la valeur saisie par l’utilisateur, “nombre”. C’est une plage allant de 1 à “nombre”.

La fonction de plage Python, qui est idéale pour être utilisée avec la boucle FOR, s’avère précieuse.

Pour créer une plage allant de 1 au nombre souhaité, nous utilisons simplement “range(1, nombre+1)”.

 Les entrées : 

 Ce code demande à l’utilisateur de saisir un nombre entier, puis calcule sa factorielle en utilisant une boucle FOR et affiche le résultat.

Voici le code Python pour calculer la factorielle d’un nombre que vous avez fourni en utilisant une boucle FOR :

programme python calculer la factorielle d'un nombre

Ainsi, la condition du test WHILE doit être formulée comme suit : “count <= numero”.

Ecrire un code python qui calcul la factorielle des nombres jusqu’à et les affiche 

Après avoir saisi la définition de la factorielle, nous examinons à présent le code Python complet pour calculer la factorielle des nombres jusqu’à 10.

Ce code utilise une fonction calcul factorielle pour calculer la factorielle d’un nombre donné. Ensuite, il itère à travers les nombres de 1 à 10, calcule leurs factorielles, et les affiche.

Code python pour calculer la factorielle des nombres jusqu'à 10

En exécutant ce code, nous obtiendrons le résultat suivant :

Autres articles

Conversion de Binaire en Hexadécimal en Python
La conversion entre différents systèmes de numérotation est une compétence...
Read more
Différence entre une Liste et un Tableau...
Python est un langage de programmation très polyvalent et puissant,...
Read more
Créer une Matrice de Corrélation en Python...
Dans cet article, nous allons voir comment créer une...
Read more

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *