LU05.A11: Factorial
Schreibe ein Programm, das die Fakultät einer Zahl berechnet.
Die Fakultät von n, bezeichnet als n!
, wird berechnet als 1 * 2 * 3 * … * n. Zum Beispiel ist die Fakultät von 4 24 oder 4! = 1 * 2 * 3 * 4 = 24. Außerdem wurde festgelegt, dass die Fakultät von 0 gleich 1 ist, also 0! = 1.
Fakultäten werden vor allem in der Wahrscheinlichkeitsrechnung verwendet, wenn verschiedene mögliche Ordnungen einer Menge untersucht werden. Zum Beispiel kann eine Gruppe von fünf Personen 5! verschiedene Reihen bilden, und ein Kartenspiel mit 52 Karten kann 52! verschiedene Reihenfolgen haben. Die Faktorrechnung kann auch zur Berechnung von Kombinationen verwendet werden. Es ist zum Beispiel möglich, 52! / (5! * (52-5)!) verschiedene Blätter aus einem 52-Kartenspiel austeilen, und man kann 40! / (7! * (40 - 7)!) verschiedene 7er-Lotterielinien aus 40 Zahlen bilden.
Auftrag
Erstelle die Programmlogik für das Programm:
- Der Benutzer gibt eine natürliche Zahl ein.
- Das Programm berechnet die Fakultät dieser Zahl und gibt das Resultat aus.
Schreibe die Programmlogik einmal als while
-Schleife in main_while
und einmal als for
-Schleife in main_for
.
Beispiel
Give a number: **3** Factorial: 6
Die interne Berechnung war hier 1 * 2 * 3 = 6
Give a number: **10** Factorial: 3628800
Und nun war die interne Berechnung 1 * 2 * 3 * … * 8 * 9 * 10 = 3628800
Vorgehen
- Akzeptiere das GitHub Classroom Assignment im Moodlekurs.
- Klone das Repository in PyCharm.
- Codiere die Programmlogik in
main.py
. - Teste dein Programm mit den Testfällen in
main_test.py
. - Führe einen Commit und einen Push durch.
Abgabe
Die Abgabe erfolgt durch den Push ins GitHub Repository. In Moodle ist keine Abgabe vorgesehen oder möglich.
Vorlage
def main_while(): # Write your program here and remove the line "pass" pass def main_for(): # Write your program here and remove the line "pass" pass if __name__ == '__main__': main_while() main_for()
Anmerkung: Kümmere dich ich im Moment nicht zu sehr um if __name__ == '__main__':
.
Dieser Programmblock legt fest, welche Funktion beim Ausführen gestartet wird.
Wir werden dies im Verlauf des Moduls noch genauer betrachten.
Diese Aufgabe ist eine übersetzte und angepasste Aufgabe von Scott Morgan, verwendet unter CC BY NC SA.