Python Programme pour trouver la factorielle d'un nombre

⚡ Résumé intelligent

Factorielle d'un nombre dans Python est le produit de tous les entiers positifs jusqu'à ce nombre. Python le calcule à l'aide d'une boucle for, d'une vérification if-else, de la récursivité ou de la fonction intégrée math.factorial().

  • (I.e. Pour la boucle: Itérer de 1 à n, en multipliant un produit cumulé pour construire la factorielle.
  • ☑️ vérification if-else : Attention aux entrées négatives : une erreur doit être renvoyée car les factorielles nécessitent des entiers non négatifs.
  • Récursivité : Une fonction s'appelle elle-même avec n-1 jusqu'à atteindre le cas de base de 0.
  • 🧪 math.factorielle() : Importez les fonctions mathématiques et appelez une fonction intégrée pour obtenir un résultat rapide et éprouvé.
  • Cas limites : La factorielle de 0 est égale à 1, et Python Gère nativement les résultats très volumineux.
  • 🤖 IA et science des données : Les probabilités, la combinatoire et des bibliothèques comme SciPy utilisent les factorielles sur les tableaux.

Python Programme pour trouver la factorielle d'un nombre

Les sections ci-dessous présentent quatre façons de calculer une factorielle. Python — une boucle for, une version if-else, la récursivité et math.factorial() — ainsi que l'algorithme sous-jacent et ses applications.

Factorielle d'un nombre utilisant la boucle for

Prenons l'exemple de Python Ce code prend un entier positif en entrée et calcule la factorielle des entiers positifs. Dans le code suivant, la boucle commence par 1, puis multiplie par chaque nombre qui précède l'entier dont on souhaite calculer la factorielle.

Python Le code illustre la fonction factorielle à l'aide d'une boucle.

Python code:

print ("Input a number")
factorialIP = int (input ())
ffactor23 = 1
for j in range (1, factorialIP+1):
   ffactor23 = ffactor23 * j
print ("The factorial of the number is “, ffactor23)

Sortie :

Input a number
4
The factorial of the number is 24

Le dessus Python Ce programme n'accepte que des nombres positifs et ne gère pas les nombres négatifs. Dans ce programme, le facteur est égal à 1 lorsque j vaut 1. Lorsque j vaut 2, le facteur est multiplié par 2, et ainsi de suite jusqu'à ce que j atteigne 4, pour arriver à 24.

Factorielle d'un nombre à l'aide de l'instruction IF…else

Python Ce code illustre la fonction factorielle à l'aide d'une fonction. Contrairement à la version avec boucle, ce programme vérifie également si les nombres sont négatifs avant de calculer la factorielle.

Dans le précédent Python Dans ce code, la vérification des nombres négatifs n'a pas été appliquée, ce qui rend la fonction factorielle incomplète et susceptible de générer un message d'erreur si des nombres négatifs sont fournis en entrée.

Dans le code donné, la boucle commence par un et multiplie par chaque nombre précédent, et la fonction valide également l'entrée pour les nombres négatifs.

Python code:

print("Enter a number for the purpose of determining factorial")
factorialIP = int(input())
def factorial(factorialIP):
   if factorialIP < 0:
     print ('Factorial does not exist')
     factor=0
     return factor
   elif factorialIP == 0:
     factor=1
     return factor
     print(factor)
   else:
     factor = 1
     for j in range (1, factorialIP+1):
       factor = factor * j
     return factor
  print ("The factorial of the number is ", factorial(factorialIP))

Sortie :

1) Enter a number to determine factorial
   -4
   Factorial does not exist
   The factorial of the number is 0

2) Enter a number to determine factorial
   4
   Factorial does not exist
   The factorial of the number is 24

Ce Python Le programme accepte les nombres positifs et ajoute une vérification pour les nombres négatifs à l'aide de l'instruction if et else, renvoyant correctement 24 pour une entrée de 4.

Factorielle d'un nombre utilisant la récursivité

Python Le code illustre la fonction factorielle à l'aide de la récursivité. Dans cet exemple, une fonction récursive prenant un entier positif en entrée calcule la factorielle.

Python code:

print("Enter a number for the purpose of determining factorial")
def factorial(num2):
  if num2 < 0:
    return 'Factorial does not exist'
  elif num2 == 0:
     return 1
  else:
     return num2 * factorial(num2-1)
number1 = int(input())
print("The factorial of the number is",factorial(number1))

Sortie :

Enter a number for the purpose of determining factorial
4
The factorial of the number is 24

La récursivité peut être expliquée comme un concept dans lequel la fonction invoquée dans la Python Le module peut s'appeler lui-même indéfiniment. Il s'exécute jusqu'à ce que… Python La condition présente dans le module est satisfaite, la fonction appelée recevant une valeur.

Au dessus Python Dans ce programme, la fonction `def factorial` s'appelle récursivement tant que le nombre n'atteint pas zéro. Une fois zéro, elle l'initialise à 1, mettant ainsi fin à la récursion.

Factorielle d'un nombre avec math.factorial()

Python Le code illustre la fonction factorielle à l'aide de math.factorial(), qui peut être utilisée en important le module math.

Cette fonction n'accepte pas les entiers négatifs et génère une erreur de valeur lorsque des nombres flottants sont fournis.

Python code:

print("Enter a number for computing factorial")
import math
number1 = int(input())
print("The factorial is as computed comes out to be ")
print(math.factorial(number1))

Sortie :

Enter a number for computing factorial
4
The factorial, as computed, comes out to be 24

Algorithme pour le programme factoriel dans Python

Prenons un exemple qui illustre la notion de factorielle.

Pour déterminer la factorielle de 5, suivez ces étapes :

5! = 5 x (5-1) x (5-2) x (5-3) x (5-4)
5! =120

Ici, 5 ! est exprimé par 120.

Le schéma suivant aide à comprendre l'algorithme de calcul factoriel, et dans ce cas, prenons un exemple de factorielle 4 !

Algorithme pour le programme factoriel

Algorithme avec exemple illustré de factorielle 4 !

Application de la factorielle dans Python

La factorielle d'un nombre a un large niveau d'applications en mathématiques. Voici des applications importantes de Python:

  • Python facilite les calculs, notamment l'affichage de la factorielle plus rapidement et plus efficacement qu'avec d'autres langages de programmation disponibles.
  • Le Python Le code est facilement compréhensible et peut être reproduit sur différentes plateformes, et la factorielle Python Ce programme peut être intégré à plusieurs projets de modélisation mathématique.

FAQ

La factorielle d'un entier non négatif n, notée n!, est le produit de tous les entiers positifs de 1 à n. Par exemple, 5! est égal à 5 ​​× 4 × 3 × 2 × 1 = 120.

Par définition, la factorielle de 0 est 1. Chaque méthode — boucle, récursion ou math.factorial() — renvoie 1 pour une entrée de 0, et ce cas de base arrête également les appels récursifs.

Oui. Python Les entiers ont une précision illimitée ; ainsi, math.factorial(100) renvoie un résultat à 158 chiffres sans dépassement de capacité. Seuls la mémoire et le temps d'exécution augmentent avec la taille de l'entrée.

A pour la boucle est généralement préféré. Les deux méthodes s'exécutent en O(n), mais la boucle utilise une mémoire constante, tandis que la récursivité ajoute une pile d'appels qui peut atteindre une valeur critique. Pythonlimite de récursion de .

Chaque méthode standard nécessite n−1 multiplications, sa complexité temporelle est donc de O(n). La boucle itérative utilise un espace mémoire de O(1), tandis que la récursivité utilise un espace mémoire de O(n) pour sa pile d'appels.

La récursivité profonde peut dépasser PythonLa limite par défaut est d'environ 1000 appels. Utilisez une boucle for itérative ou math.factorial() pour les grandes entrées, ou augmentez la limite avec sys.setrecursionlimit().

Oui. Les factorielles interviennent en combinatoire et dans les distributions de probabilité comme la loi de Poisson et la loi binomiale, qui sous-tendent de nombreux modèles d'apprentissage automatique. Les bibliothèques de science des données proposent également des fonctions vectorisées pour calculer les factorielles des tableaux.

Oui. GitHub Copilot et les assistants IA similaires génèrent des versions de boucles, de fonctions récursives et de fonctions factorielles à partir d'une brève invite. Consultez toujours la suggestion concernant la protection contre les nombres négatifs et le cas de base 0!.

Résumez cet article avec :