- Qu'est-ce que factoriel
- Formule factorielle
- 10 factoriel
- factoriel de 5
- factoriel de 0
- Programme factoriel en Python
- Compter les zéros à droite dans la factorielle
- Questions fréquentes
Déclaration de problème: Nous avons l'intention d'utiliser Python pour couvrir les bases de la factorielle et du calcul factoriel d'un nombre.
C'est quoi Factoriel ?
En termes simples, si vous voulez trouver la factorielle d'un entier positif, continuez à la multiplier par tous les entiers positifs inférieurs à ce nombre. Le résultat final que vous obtenez est la factorielle de ce nombre. Donc, si vous voulez trouver la factorielle de 7, multipliez 7 par tous les entiers positifs inférieurs à 7, et ces nombres seraient 6,5,4,3,2,1. Multipliez tous ces nombres par 7, et le résultat final est la factorielle de 7.
Si vous cherchez à développer votre expertise dans le programme factoriel Python, envisagez d'obtenir une certification. Cette cours gratuit sur le programme factoriel en Python vous offre des conseils complets sur le sujet ainsi qu'un certificat de fin d'études qui ne manquera pas de faire ressortir votre CV.
Formule de factoriel
La factorielle d'un nombre est notée n! est le produit de tous les entiers positifs inférieurs ou égaux à n :
n! =n*(n-1)*(n-2)*.....3*2*1
10 Factorielle
Alors qu'est-ce que 10 !? Multipliez 10 par tous les entiers positifs inférieurs à 10.
dix! =10*9* 8 *7* 6 *5* 4 *3*2*1=3628800
Factorielle de 5
Pour trouver '5!' encore une fois, faites le même processus. Multipliez 5 par tous les entiers positifs inférieurs à 5. Ces nombres seraient 4,3,2,1
5!=5*4* 3 *2*1 = 120
Factorielle de 0
Puisque 0 n'est pas un entier positif, selon la convention, la factorielle de 0 est définie comme étant elle-même.
0! = 1
Calculer ceci est un problème intéressant. Réfléchissons à la raison pour laquelle une simple multiplication serait problématique pour un ordinateur. La réponse à cela réside dans la manière dont la solution est mise en œuvre.
1 ! = 1
2 ! = 2
5 ! = 120
10 ! = 3628800
20 ! = 2432902008176640000
30 ! = 9.332621544394418e+157
L'augmentation exponentielle des valeurs nous montre que la factorielle est une fonction exponentielle et que le temps nécessaire pour la calculer prendrait un temps exponentiel.
Programme factoriel en Python
Nous allons passer par 3 façons de calculer la factorielle :
- Utilisation d'une fonction du module mathématique
- Approche itérative (utilisation de la boucle for)
- Approche récursive
Programme factoriel en Python utilisant la fonction
C'est la méthode la plus simple qui peut être utilisée pour calculer la factorielle d'un nombre. Ici, nous avons un module nommé math qui contient plusieurs opérations mathématiques qui peuvent être facilement effectuées à l'aide du module.
import math
num=int(input("Enter the number: "))
print("factorial of ",num," (function): ",end="")
print(math.factorial(num))
Entrée – Entrez le nombre : 4
Sortie - Factorielle de 4 (fonction):24
Programme factoriel en python utilisant la boucle for
def iter_factorial(n):
factorial=1
n = input("Enter a number: ")
factorial = 1
if int(n) >= 1:
for i in range (1,int(n)+1):
factorial = factorial * i
return factorial
num=int(input("Enter the number: "))
print("factorial of ",num," (iterative): ",end="")
print(iter_factorial(num))
Entrée – Entrez le nombre : 5
Sortie – Factoriel de 5 (itératif) : 120
Considérons le programme itératif. L'exécution de la boucle while prend beaucoup de temps. Le programme ci-dessus prend beaucoup de temps, disons infini. Le but même du calcul factoriel est d'obtenir le résultat dans le temps ; par conséquent, cette approche ne fonctionne pas pour d'énormes chiffres.
Programme factoriel en Python utilisant la récursivité
def recur_factorial(n):
"""Function to return the factorial
of a number using recursion"""
if n == 1:
return n
else:
return n*recur_factorial(n-1)
num=int(input("Enter the number: "))
print("factorial of ",num," (recursive): ",end="")
print(recur_factorial(num))
Entrée – Entrée – Entrez le nombre : 4
Sortie – Factoriel de 5 (récursif) : 24
Sur un ordinateur de 16 Go de RAM, le programme ci-dessus peut calculer des valeurs factorielles jusqu'à 2956. Au-delà, il dépasse la mémoire et échoue donc. Le temps nécessaire est moindre par rapport à l'approche itérative. Mais cela se fait au détriment de l'espace occupé.
Quelle est la solution au problème ci-dessus?
Le problème du calcul factoriel a une structure très répétitive.
Pour calculer la factorielle (4), nous calculons f(3) une fois, f(2) deux fois et f(1) trois fois ; à mesure que le nombre augmente, les répétitions augmentent. Par conséquent, la solution serait de calculer la valeur une fois et de la stocker dans un tableau à partir duquel elle pourra être consultée la prochaine fois qu'elle sera requise. Par conséquent, nous utilisons la programmation dynamique dans de tels cas. Les conditions de mise en œuvre de la programmation dynamique sont
- Chevauchement des sous-problèmes
- sous-structure optimale
Considérez la modification du code ci-dessus comme suit :
def DPfact(N):
arr={}
if N in arr:
return arr[N]
elif N == 0 or N == 1:
return 1
arr[N] = 1
else:
factorial = N*DPfact(N - 1)
arr[N] = factorial
return factorial
num=int(input("Enter the number: "))
print("factorial of ",num," (dynamic): ",end="")
print(DPfact(num))
Entrée – Entrez le nombre : 6
Sortie – factorielle de 6 (dynamique) : 720
Une solution de programmation dynamique est très efficace en termes de complexités temporelles et spatiales.
Compter les zéros de fin dans Factorial en utilisant Python
Énoncé du problème : compter le nombre de zéros dans la factorielle d'un nombre à l'aide de Python
num=int(input("Enter the number: "))
# Initialize result
count = 0
# Keep dividing n by
# powers of 5 and
# update Count
temp = 5
while (num / temp>= 1):
count += int(num / temp)
temp *= 5
# Driver program
print("Number of trailing zeros", count)
Sortie
Entrez le nombre : 5
Nombre de zéros à droite 1
Apprenez à trouver si une chaîne est un palindrome.
Apprenez à imprimer le Série de Fibonacci en Python. En outre, apprendre l'intelligence artificielle en ligne avec l'aide de ce cours d'IA.
Questions fréquentes
Qu'est-ce que la factorielle en mathématiques ?
Factorielle d'un nombre, en mathématiques, est le produit de tous les entiers positifs inférieurs ou égaux à un nombre positif donné et désigné par ce nombre et un point d'exclamation. Ainsi, factoriel sept s'écrit 4 ! ce qui signifie 1 × 2 × 3 × 4, égal à 24. Le zéro factoriel est défini comme égal à 1. Le factoriel des nombres réels et négatifs n'existe pas.
Quelle est la formule de la factorielle ?
Pour calculer la factorielle d'un nombre N, utilisez cette formule :
Factorielle=1 x 2 x 3 x…x N-1 x N
Existe-t-il une fonction factorielle en Python ?
Oui, nous pouvons importer un module en Python appelé math qui contient presque toutes les fonctions mathématiques. Pour calculer factorielle avec une fonction, voici le code :
import math
num=int(input("Enter the number: "))
print("factorial of ",num," (function): ",end="")
print(math.factorial(num))
Vous avez trouvé ce blog intéressant ? Apprenez l'intelligence artificielle en ligne avec l'aide du cours d'intelligence artificielle et d'apprentissage automatique PGP de Great Learning, et améliorez vos compétences dès aujourd'hui !