Python Programm zum Ermitteln der Fakultät einer Zahl

⚡ Intelligente Zusammenfassung

Fakultät einer Zahl in Python ist das Produkt aller positiven ganzen Zahlen bis zu dieser Zahl. Python Berechnet wird es mit einer for-Schleife, einer if-else-Abfrage, Rekursion oder der eingebauten Funktion math.factorial().

  • 🔘 For-Schleife: Iteriere von 1 bis n und multipliziere ein laufendes Produkt, um die Fakultät zu bilden.
  • ☑️ Wenn-Dann-Prüfung: Schutz vor negativen Eingaben, da Fakultäten nicht-negative ganze Zahlen benötigen.
  • Rekursion: Eine Funktion ruft sich selbst mit n-1 so lange auf, bis sie den Basisfall 0 erreicht.
  • 🧪 math.factorial(): Importieren Sie mathematische Funktionen und rufen Sie eine integrierte Funktion auf, um ein schnelles, getestetes Ergebnis zu erhalten.
  • Randfälle: Die Fakultät von 0 ist gleich 1, und Python Verarbeitet sehr große Ergebnisse nativ.
  • 🤖 KI und Datenwissenschaft: Wahrscheinlichkeitstheorie, Kombinatorik und Bibliotheken wie SciPy verwenden Fakultäten auf Arrays.

Python Programm zum Ermitteln der Fakultät einer Zahl

Die folgenden Abschnitte zeigen vier Möglichkeiten zur Berechnung einer Fakultät in Python — eine for-Schleife, eine if-else-Version, Rekursion und math.factorial() — plus der zugrunde liegende Algorithmus und Anwendungen.

Fakultät einer Zahl mit for-Schleife

Nehmen wir das Beispiel von Python Dieser Code nimmt eine positive ganze Zahl als Eingabe und berechnet die Fakultät positiver ganzer Zahlen. Im folgenden Code beginnt die Schleife mit 1 und multipliziert dann jede Zahl vor der eigentlichen Zahl, deren Fakultät berechnet werden soll, mit dieser.

Folgende Python Der Code veranschaulicht die Fakultätsfunktion mithilfe einer Schleife.

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)

Ausgang:

Input a number
4
The factorial of the number is 24

Die obige Python Das Programm verarbeitet nur positive Zahlen als Eingabe und prüft nicht auf negative Zahlen. Im Programm ist der Faktor 1, wenn j gleich 1 ist. Wenn j gleich 2 ist, wird der Faktor mit 2 multipliziert, und dieser Vorgang wird so lange wiederholt, bis j den Wert 4 erreicht und schließlich 24.

Fakultät einer Zahl mit der IF…else-Anweisung

Folgende Python Der Code veranschaulicht die Fakultätsfunktion mithilfe einer Funktion. Im Gegensatz zur Schleifenversion prüft dieses Programm vor der Berechnung der Fakultät auch auf negative Zahlen.

Im vorigen Python Im Code wurde die Prüfung auf negative Zahlen nicht angewendet, wodurch die Fakultätsfunktion unvollständig ist und bei Eingabe negativer Zahlen eine Fehlermeldung ausgibt.

Im gegebenen Code beginnt die Schleife mit einer Eins und multipliziert mit jeder vorhergehenden Zahl. Die Funktion prüft außerdem, ob die Eingabe negative Zahlen enthält.

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

Ausgang:

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

Dieser Python Das Programm akzeptiert positive Zahlen und fügt eine Prüfung auf negative Zahlen mittels einer if-else-Anweisung hinzu, wobei für eine Eingabe von 4 korrekterweise 24 zurückgegeben wird.

Fakultät einer Zahl mittels Rekursion

Folgende Python Der Code veranschaulicht die Fakultätsfunktion mithilfe von Rekursion. In diesem Beispiel berechnet eine rekursive Funktion, die eine positive ganze Zahl als Eingabe entgegennimmt, die Fakultät.

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

Ausgang:

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

Die Rekursion lässt sich als ein Konzept erklären, bei dem die Funktion, die im Python Das Modul kann sich selbst immer wieder aufrufen. Es läuft so lange, bis Python Die im Modul vorhandene Bedingung ist erfüllt, wobei der aufgerufenen Funktion ein Wert übergeben wird.

In obigem Python Im Programm ruft sich die Funktion `def factorial` rekursiv so lange selbst auf, bis die Zahl den Wert Null erreicht. Sobald die Zahl Null erreicht, wird sie mit 1 initialisiert und die Rekursion beendet.

Fakultät einer Zahl mit math.factorial()

Folgende Python Der Code veranschaulicht die Fakultätsfunktion mithilfe von math.factorial(), die durch Importieren des Moduls math verwendet werden kann.

Diese Funktion akzeptiert keine negativen ganzen Zahlen und löst einen Wertfehler aus, wenn Gleitkommazahlen angegeben werden.

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

Ausgang:

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

Algorithmus für das Fakultätsprogramm in Python

Nehmen wir ein Beispiel, das das Konzept der Fakultät veranschaulicht.

Zur Bestimmung der Fakultät 5 gehen Sie wie folgt vor:

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

Hier, 5! wird als 120 ausgedrückt.

Das folgende Diagramm hilft beim Verständnis des Algorithmus zur Berechnung der Fakultät. In diesem Fall nehmen wir als Beispiel die Fakultät 4!

Algorithmus für das Faktorprogramm

Algorithmus mit Bildbeispiel für Fakultät 4!

Anwendung der Fakultät in Python

Die Fakultät einer Zahl hat ein breites Anwendungsgebiet in der Mathematik. Hier sind wichtige Anwendungen von Python:

  • Python hilft bei der Berechnung, gefolgt von der Ausgabe der Fakultät in schnelleren und effizienteren Begriffen als andere verfügbare Programmiersprachen.
  • Das Python Der Code ist leicht verständlich und kann auf verschiedenen Plattformen repliziert werden, und die Fakultät Python Das Programm kann in verschiedene Aufgaben zur mathematischen Modellbildung integriert werden.

Häufig gestellte Fragen

Die Fakultät einer nichtnegativen ganzen Zahl n, geschrieben n!, ist das Produkt aller positiven ganzen Zahlen von 1 bis n. Zum Beispiel ist 5! gleich 5 × 4 × 3 × 2 × 1 = 120.

Per Definition ist die Fakultät von 0 gleich 1. Jede Methode – Schleife, Rekursion oder math.factorial() – gibt bei Eingabe 0 den Wert 1 zurück, und dieser Basisfall beendet auch rekursive Aufrufe.

Ja. Python Ganze Zahlen haben unbegrenzte Genauigkeit, daher liefert `math.factorial(100)` ein 158-stelliges Ergebnis ohne Überlauf. Lediglich Speicherbedarf und Laufzeit steigen mit der Eingabegröße.

A for-Schleife wird in der Regel bevorzugt. Beide haben eine Laufzeit von O(n), aber die Schleife benötigt konstanten Speicher, während die Rekursion einen Aufrufstapel hinzufügt, der zu einem Fehler führen kann. PythonRekursionsgrenze.

Jede Standardmethode benötigt n−1 Multiplikationen, daher beträgt die Zeitkomplexität O(n). Die iterative Schleife benötigt O(1) Speicherplatz, während die Rekursion O(n) Speicherplatz für ihren Aufrufstapel benötigt.

Tiefe Rekursion kann überschreiten PythonDie Standardbegrenzung liegt bei etwa 1000 Aufrufen. Verwenden Sie für große Eingaben eine iterative for-Schleife oder math.factorial(), oder erhöhen Sie die Obergrenze mit sys.setrecursionlimit().

Ja. Fakultäten spielen eine Rolle in der Kombinatorik und bei Wahrscheinlichkeitsverteilungen wie der Poisson- und der Binomialverteilung, die vielen Modellen des maschinellen Lernens zugrunde liegen. Data-Science-Bibliotheken bieten außerdem vektorisierte Hilfsfunktionen für Fakultäten in Arrays an.

Ja. GitHub Copilot und ähnliche KI-Assistenten generieren anhand einer kurzen Eingabe Schleifen-, Rekursions- und Fakultätsfunktionen. Beachten Sie stets die Vorschläge für die Negativitätsprüfung und den Basisfall 0!.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: