Python Programma om de faculteit van een getal te vinden

โšก Slimme samenvatting

faculteit van een getal in Python is het product van alle positieve gehele getallen tot en met dat getal. Python Het wordt berekend met een for-lus, een if-else-controle, recursie of de ingebouwde functie math.factorial().

  • ๐Ÿ”˜ For loop: Doorloop de getallen van 1 tot en met n en vermenigvuldig een lopend product om de faculteit te berekenen.
  • โ˜‘๏ธ Als-anders-controle: Bescherm tegen negatieve invoer; er wordt een foutmelding geretourneerd omdat faculteiten niet-negatieve gehele getallen vereisen.
  • โœ… Herhaling: Een functie roept zichzelf aan met n-1 totdat het basisgeval 0 bereikt is.
  • ๐Ÿงช math.factorial(): Importeer wiskundige formules en roep een ingebouwde functie aan voor een snel, getest resultaat.
  • ๏ธ Randgevallen: De faculteit van 0 is gelijk aan 1, en Python Verwerkt zeer grote resultaten probleemloos.
  • ๐Ÿค– AI en datawetenschap: Kansrekening, combinatoriek en bibliotheken zoals SciPy maken gebruik van faculteiten op arrays.

Python Programma om de faculteit van een getal te vinden

De onderstaande paragrafen tonen vier manieren om een โ€‹โ€‹faculteit te berekenen. Python โ€” een for-lus, een if-else-versie, recursie en math.factorial() โ€” plus het onderliggende algoritme en toepassingen.

Faculteit van een getal met behulp van for Loop

Laten we het voorbeeld nemen van Python Code die een positief geheel getal als invoer neemt om de faculteit van positieve gehele getallen te berekenen. In de volgende code begint de lus met รฉรฉn en vermenigvuldigt vervolgens met elk getal dat voorafgaat aan het getal waarvan de faculteit moet worden berekend.

De volgende Python De code illustreert de faculteitsfunctie met behulp van een lus.

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)

Output:

Input a number
4
The factorial of the number is 24

Bovenstaande Python Het programma accepteert alleen positieve getallen als invoer en controleert niet op negatieve getallen. In dit programma is de factor 1 wanneer j gelijk is aan 1. Wanneer j gelijk is aan 2, wordt de factor vermenigvuldigd met 2, en dit proces wordt herhaald totdat j 4 bereikt, om uiteindelijk bij 24 uit te komen.

Faculteit van een getal met behulp van IFโ€ฆelse-instructie

De volgende Python Deze code illustreert de faculteitsfunctie met behulp van een functie. In tegenstelling tot de versie met een lus, controleert dit programma ook op negatieve getallen voordat de faculteit wordt berekend.

In de vorige Python In de code werd de controle op negatieve getallen niet toegepast, waardoor de faculteitsfunctie onvolledig is en een foutmelding kan geven als negatieve getallen als invoer worden gegeven.

In de gegeven code begint de lus met รฉรฉn en vermenigvuldigt met elk voorgaand getal. De functie controleert ook of de invoer negatief is.

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

Output:

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

In deze Python Het programma accepteert positieve getallen en voegt een controle toe voor negatieve getallen met behulp van een if-else-instructie, waarbij correct 24 wordt geretourneerd voor een invoer van 4.

Faculteit van een getal met behulp van recursie

De volgende Python De code illustreert de faculteitsfunctie met behulp van recursie. In dit voorbeeld berekent een recursieve functie, die een positief geheel getal als invoer neemt, de faculteit.

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

Output:

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

Recursie kan worden uitgelegd als een concept waarbij de functie die wordt aangeroepen in de Python De module kan zichzelf steeds opnieuw aanroepen. Hij blijft draaien totdat... Python De voorwaarde in de module is voldaan, waarbij de aangeroepen functie een waarde ontvangt.

In bovenstaande Python In het programma roept de functie `def faculteit` zichzelf recursief aan totdat het getal nul bereikt. Zodra het getal nul bereikt, wordt het geรฏnitialiseerd met de waarde 1, waarmee de recursie eindigt.

De faculteit van een getal berekenen met behulp van math.factorial().

De volgende Python De code illustreert de faculteitsfunctie met behulp van math.factorial(), die kan worden gebruikt door de math-module te importeren.

Deze functie accepteert geen negatieve gehele getallen en geeft een waarde-foutmelding wanneer er drijvende-komma getallen worden ingevoerd.

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

Output:

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

Algoritme voor het factoriรซle programma in Python

Laten we een voorbeeld nemen dat het concept van faculteit illustreert.

Volg deze stappen om de factor 5 te bepalen:

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

Hier, 5! wordt uitgedrukt als 120.

Het onderstaande diagram helpt bij het begrijpen van het algoritme voor het berekenen van de faculteit. In dit geval nemen we een voorbeeld van faculteit 4!

Algoritme voor het factoriรซle programma

Algoritme annex picturaal voorbeeld van faculteit 4!

Toepassing van faculteit in Python

Faculteit van een getal heeft een breed toepassingsniveau in de wiskunde. Hier zijn belangrijke toepassingen van Python:

  • Python Het helpt bij berekeningen, gevolgd door het sneller en efficiรซnter afdrukken van faculteiten dan andere beschikbare programmeertalen.
  • De Python De code is gemakkelijk te begrijpen en kan op verschillende platforms worden gerepliceerd, en de faculteit Python Het programma kan worden geรฏntegreerd in diverse opdrachten voor het bouwen van wiskundige modellen.

Veelgestelde vragen

De faculteit van een niet-negatief geheel getal n, geschreven als n!, is het product van alle positieve gehele getallen van 1 tot en met n. Bijvoorbeeld, 5! is gelijk aan 5 ร— 4 ร— 3 ร— 2 ร— 1 = 120.

Per definitie is de faculteit van 0 gelijk aan 1. Elke methode โ€” lus, recursie of math.factorial() โ€” retourneert 1 voor invoer 0, en dit basisgeval voorkomt ook recursieve aanroepen.

Ja. Python Gehele getallen hebben een onbeperkte precisie, dus math.factorial(100) geeft een resultaat van 158 cijfers zonder overloop. Alleen het geheugenverbruik en de rekentijd nemen toe met de grootte van de invoer.

A for loop wordt meestal geprefereerd. Beide werken in O(n) tijd, maar de lus gebruikt constant geheugen, terwijl recursie een aanroepstack toevoegt die een fout kan veroorzaken. Pythonde recursielimiet van 's.

Elke standaardmethode vereist nโˆ’1 vermenigvuldigingen, dus de tijdscomplexiteit is O(n). De iteratieve lus gebruikt O(1) ruimte, terwijl recursie O(n) ruimte gebruikt voor de aanroepstack.

Diepe recursie kan de volgende grenzen overschrijden PythonDe standaardlimiet ligt rond de 1000 aanroepen. Gebruik een iteratieve for-lus of math.factorial() voor grote invoerwaarden, of verhoog de limiet met sys.setrecursionlimit().

Ja. Faculteiten komen voor in combinatoriek en kansverdelingen zoals de Poisson- en binomiale verdeling, die aan de basis liggen van veel machine learning-modellen. Data science-bibliotheken bieden ook gevectoriseerde hulpmiddelen voor het berekenen van faculteiten in arrays.

Ja. GitHub Copilot en vergelijkbare AI-assistenten genereren lus-, recursieve en math.factorial()-versies op basis van een korte prompt. Controleer altijd de suggestie voor de beveiliging tegen negatieve getallen en het basisgeval 0!

Vat dit bericht samen met: