Logo Zéphyrnet

Programme Python pour trouver la factorielle d'un nombre

Date :

  1. Qu'est-ce que factoriel
  2. Formule factorielle
  3. 10 factoriel
  4. factoriel de 5
  5. factoriel de 0
  6. Programme factoriel en Python
    1. Programme factoriel en Python utilisant la fonction
    2. Programme factoriel en Python utilisant la boucle for
    3. Programme factoriel en Python utilisant la récursivité
  7. Compter les zéros à droite dans la factorielle
  8. 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

Programme factoriel en python
Factorielle d'un nombre

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))

TESTEZ LE CODE

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))

TESTEZ LE CODE

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))

TESTEZ LE CODE

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

  1. Chevauchement des sous-problèmes
  2. 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))

TESTEZ LE CODE

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 !

spot_img

Dernières informations

spot_img