Python Πρόγραμμα για την εύρεση του παραγοντικού ενός αριθμού

⚡ Έξυπνη Σύνοψη

Παραγοντικό ενός αριθμού σε Python είναι το γινόμενο κάθε θετικού ακέραιου αριθμού μέχρι αυτόν τον αριθμό. Python το υπολογίζει με έναν βρόχο for, έναν έλεγχο if-else, αναδρομή ή την ενσωματωμένη συνάρτηση math.factorial().

  • 🔘 Για βρόχο: Επαναλάβετε από το 1 έως το n, πολλαπλασιάζοντας ένα τρέχον γινόμενο για να δημιουργήσετε το παραγοντικό.
  • ☑️ Έλεγχος "αν-αλλιώς": Προστατευτείτε από αρνητικά δεδομένα εισόδου, επιστρέφοντας σφάλμα, καθώς τα παραγοντικά χρειάζονται μη αρνητικούς ακέραιους αριθμούς.
  • Αναδρομή: Μια συνάρτηση καλεί τον εαυτό της με n-1 μέχρι να φτάσει στην βασική περίπτωση του 0.
  • 🧪 math.factorial(): Εισαγάγετε μαθηματικά και καλέστε μία ενσωματωμένη συνάρτηση για ένα γρήγορο, δοκιμασμένο αποτέλεσμα.
  • Περιπτώσεις ακμής: Το παραγοντικό του 0 ισούται με 1, και Python χειρίζεται πολύ μεγάλα αποτελέσματα εγγενώς.
  • 🤖 Τεχνητή Νοημοσύνη και Επιστήμη Δεδομένων: Η πιθανοτική, η συνδυαστική και οι βιβλιοθήκες όπως η SciPy χρησιμοποιούν παραγοντικά σε πίνακες.

Python Πρόγραμμα για την εύρεση του παραγοντικού ενός αριθμού

Οι παρακάτω ενότητες δείχνουν τέσσερις τρόπους για να υπολογίσετε ένα παραγοντικό στο Python — ένας βρόχος for, μια έκδοση if-else, αναδρομή και math.factorial() — συν τον υποκείμενο αλγόριθμο και τις εφαρμογές.

Παραγοντικός ενός αριθμού που χρησιμοποιεί για βρόχο

Ας πάρουμε το παράδειγμα του Python κώδικας που δέχεται έναν θετικό ακέραιο αριθμό ως είσοδο για να προσδιορίσει το παραγοντικό των θετικών ακεραίων. Στον ακόλουθο κώδικα, ο βρόχος ξεκινά με ένα και στη συνέχεια πολλαπλασιάζεται με κάθε αριθμό που προηγείται του πραγματικού αριθμού του οποίου το παραγοντικό πρόκειται να προσδιοριστεί.

Ο ακόλουθος Python Ο κώδικας απεικονίζει την παραγοντική συνάρτηση χρησιμοποιώντας έναν βρόχο.

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)

Παραγωγή:

Input a number
4
The factorial of the number is 24

Τα παραπάνω Python Το πρόγραμμα δέχεται μόνο θετικούς αριθμούς και δεν έχει έλεγχο αρνητικών αριθμών. Σε αυτό το πρόγραμμα, ο παράγοντας είναι 1 όταν το j είναι ίσο με 1. Όταν το j είναι 2, ο παράγοντας πολλαπλασιάζεται με 2 και θα εκτελεί την ενέργεια μέχρι το j να φτάσει στο 4 για να φτάσει στο 24.

Παραγοντικός Αριθμός χρησιμοποιώντας δήλωση IF…else

Ο ακόλουθος Python Ο κώδικας απεικονίζει τη συνάρτηση παραγοντικού χρησιμοποιώντας μια συνάρτηση. Σε αντίθεση με την έκδοση βρόχου, αυτό το πρόγραμμα ελέγχει επίσης για αρνητικούς αριθμούς πριν υπολογίσει το παραγοντικό.

Στο προηγούμενο Python Στον κώδικα, ο έλεγχος για αρνητικούς αριθμούς δεν εφαρμόστηκε, καθιστώντας την παραγοντική συνάρτηση ελλιπή και επιρρεπή στην εμφάνιση μηνύματος σφάλματος εάν δοθούν αρνητικοί αριθμοί ως είσοδος.

Στον δεδομένο κώδικα, ο βρόχος ξεκινά με ένα και πολλαπλασιάζεται με κάθε προηγούμενο αριθμό, και η συνάρτηση επικυρώνει επίσης την είσοδο για αρνητικούς αριθμούς.

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

Παραγωγή:

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

Αυτός ο διαλογισμός στα Python Το πρόγραμμα δέχεται θετικούς αριθμούς και προσθέτει έναν έλεγχο για αρνητικούς αριθμούς χρησιμοποιώντας τις εντολές if και else, επιστρέφοντας σωστά 24 για είσοδο 4.

Παραγοντικό ενός αριθμού με χρήση αναδρομής

Ο ακόλουθος Python Ο κώδικας απεικονίζει την παραγοντική συνάρτηση χρησιμοποιώντας αναδρομή. Σε αυτό το παράδειγμα, μια αναδρομική συνάρτηση που δέχεται έναν θετικό ακέραιο ως είσοδο καθορίζει τον παραγοντικό αριθμό.

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

Παραγωγή:

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

Η αναδρομή μπορεί να εξηγηθεί ως μια έννοια όπου η συνάρτηση που καλείται στο Python Η ενότητα μπορεί να καλέσει τον εαυτό της ξανά και ξανά. Εκτελείται μέχρι το Python Η συνθήκη που υπάρχει στη μονάδα ικανοποιείται, όπου η συνάρτηση που καλείται διαβιβάζεται με μια τιμή.

Στα παραπάνω Python Στο πρόγραμμα, η συνάρτηση def factorial συνεχίζει να καλεί τον εαυτό της αναδρομικά μέχρι και εκτός αν ο αριθμός φτάσει στο μηδέν. Μόλις ο αριθμός φτάσει στο μηδέν, αρχικοποιεί τον αριθμό ως 1, τερματίζοντας την αναδρομή.

Παραγοντικό ενός αριθμού χρησιμοποιώντας math.factorial()

Ο ακόλουθος Python Ο κώδικας απεικονίζει τη συνάρτηση παραγοντικού χρησιμοποιώντας την math.factorial(), η οποία μπορεί να χρησιμοποιηθεί εισάγοντας τη μαθηματική ενότητα.

Αυτή η συνάρτηση δεν δέχεται αρνητικούς ακέραιους αριθμούς και εμφανίζει σφάλμα τιμής όταν παρέχονται αριθμοί κινητής υποδιαστολής.

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

Παραγωγή:

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

Αλγόριθμος για το Factorial Program in Python

Ας πάρουμε ένα παράδειγμα που επεξηγεί την έννοια του παραγοντικού.

Για τον προσδιορισμό του παραγοντικού 5, ακολουθήστε τα εξής βήματα:

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

Ορίστε, 5! εκφράζεται ως 120.

Το παρακάτω διάγραμμα βοηθά στην κατανόηση του αλγόριθμου υπολογισμού του παραγοντικού, και σε αυτή την περίπτωση, ας πάρουμε ένα παράδειγμα του παραγοντικού 4!

Αλγόριθμος για το Factorial Program

Αλγόριθμος με εικονογραφικό παράδειγμα παραγοντικού 4!

Εφαρμογή Factorial σε Python

Το παραγοντικό ενός αριθμού έχει ένα ευρύ επίπεδο εφαρμογών στα μαθηματικά. Εδώ είναι σημαντικές εφαρμογές του Python:

  • Python βοηθά στον υπολογισμό, ακολουθούμενο από την εκτύπωση παραγοντικού με ταχύτερους και πιο αποτελεσματικούς όρους από άλλες διαθέσιμες γλώσσες προγραμματισμού.
  • The Python ο κώδικας είναι εύκολα κατανοητός και μπορεί να αναπαραχθεί σε διαφορετικές πλατφόρμες, και το παραγοντικό Python Το πρόγραμμα μπορεί να ενσωματωθεί σε διάφορες εργασίες δημιουργίας μαθηματικών μοντέλων.

Συχνές Ερωτήσεις

Το παραγοντικό ενός μη αρνητικού ακέραιου n, που γράφεται n!, είναι το γινόμενο όλων των θετικών ακεραίων από το 1 έως το n. Για παράδειγμα, το 5! ισούται με 5 × 4 × 3 × 2 × 1 = 120.

Εξ ορισμού, το παραγοντικό του 0 είναι 1. Κάθε μέθοδος — loop, recursion ή math.factorial() — επιστρέφει 1 για την είσοδο 0, και αυτή η βασική περίπτωση σταματά επίσης τις αναδρομικές κλήσεις.

Ναί. Python Οι ακέραιοι αριθμοί έχουν απεριόριστη ακρίβεια, επομένως η συνάρτηση math.factorial(100) επιστρέφει ένα αποτέλεσμα 158 ψηφίων χωρίς υπερχείλιση. Μόνο η μνήμη και ο χρόνος εκτέλεσης αυξάνονται με το μέγεθος εισόδου.

A για βρόχο συνήθως προτιμάται. Και τα δύο εκτελούνται σε χρόνο O(n), αλλά ο βρόχος χρησιμοποιεί σταθερή μνήμη, ενώ η αναδρομή προσθέτει μια στοίβα κλήσεων που μπορεί να χτυπήσει Pythonτο όριο αναδρομής του.

Κάθε τυπική μέθοδος χρειάζεται πολλαπλασιασμούς n−1, επομένως η χρονική πολυπλοκότητα είναι O(n). Ο επαναληπτικός βρόχος διατηρεί τον χώρο στο O(1), ενώ η αναδρομή χρησιμοποιεί χώρο O(n) για τη στοίβα κλήσεών της.

Η βαθιά αναδρομή μπορεί να υπερβαίνει PythonΤο προεπιλεγμένο όριο είναι κοντά στις 1000 κλήσεις. Χρησιμοποιήστε μια επαναληπτική συνάρτηση for loop ή math.factorial() για μεγάλες εισόδους ή αυξήστε το όριο με την sys.setrecursionlimit().

Ναι. Τα παραγοντικά εμφανίζονται σε συνδυαστικές κατανομές και κατανομές πιθανοτήτων, όπως η Poisson και η διωνυμική, που υποστηρίζουν πολλά μοντέλα μηχανικής μάθησης. Οι βιβλιοθήκες επιστήμης δεδομένων προσφέρουν επίσης βοηθούς διανυσμάτων παραγοντικών για πίνακες.

Ναι. Το GitHub Copilot και παρόμοιοι βοηθοί τεχνητής νοημοσύνης δημιουργούν εκδόσεις loop, recursive και math.factorial() από μια σύντομη προτροπή. Να ελέγχετε πάντα την πρόταση για τον αρνητικό αριθμό guard και την βασική περίπτωση 0!.

Συνοψίστε αυτήν την ανάρτηση με: