Python Program za pronalaženje faktorijela broja

⚡ Pametni sažetak

Faktorijel broja u Python je umnožak svakog pozitivnog cijelog broja do tog broja. Python izračunava ga pomoću for petlje, if-else provjere, rekurzije ili ugrađene funkcije math.factorial().

  • 🔘 Za petlju: Iterirajte od 1 do n, množeći tekući produkt kako biste izgradili faktorijel.
  • ☑️ Provjera ako-inače: Zaštitite se od negativnog unosa, vraćajući grešku jer faktorijeli trebaju nenegativne cijele brojeve.
  • Rekurzija: Funkcija poziva samu sebe s n-1 sve dok ne dostigne bazni slučaj 0.
  • 🧪 matematika.faktorijal(): Uvezite matematičke podatke i pozovite jednu ugrađenu funkciju za brz i testiran rezultat.
  • 🛠️ Rubni slučajevi: Faktorijel od 0 jednak je 1, i Python izvorno obrađuje vrlo velike rezultate.
  • 🤖 Umjetna inteligencija i znanost o podacima: Vjerojatnost, kombinatorika i biblioteke poput SciPy-a koriste faktorijele na nizovima.

Python Program za pronalaženje faktorijela broja

U donjim odjeljcima prikazana su četiri načina za izračunavanje faktorijela u Python — for petlja, if-else verzija, rekurzija i math.factorial() — plus temeljni algoritam i primjene.

Faktorijel broja koji koristi for petlju

Uzmimo za primjer Python kod koji uzima pozitivan cijeli broj kao ulaz za određivanje faktorijela pozitivnih cijelih brojeva. U sljedećem kodu petlja počinje s jedinicom, a zatim množi sa svakim brojem koji prethodi stvarnom broju čiji se faktorijel treba odrediti.

Sljedeće Python Kod ilustrira faktorijelnu funkciju pomoću petlje.

Python kodirati:

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)

Izlaz:

Input a number
4
The factorial of the number is 24

Gore Python Program prima samo unos pozitivnih brojeva i ne provjerava negativne brojeve. U ovom programu, faktor je 1 kada je j jednako 1. Kada je j jednako 2, faktor se množi s 2 i program će izvršavati radnju sve dok j ne dođe do 4 i dobije 24.

Faktorijel broja pomoću naredbe IF…else

Sljedeće Python Kôd ilustrira faktorijelnu funkciju pomoću funkcije. Za razliku od verzije s petljom, ovaj program također provjerava negativne brojeve prije izračuna faktorijela.

U prethodnom Python U kodu nije primijenjena provjera negativnih brojeva, što je faktorijalnu funkciju učinilo nepotpunom i sklonom prikazivanju poruke o pogrešci ako su kao ulaz zadani negativni brojevi.

U danom kodu, petlja počinje s jedinicom i množi se sa svakim prethodnim brojem, a funkcija također provjerava ulaz za negativne brojeve.

Python kodirati:

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

Izlaz:

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

Ova Python Program prihvaća pozitivne brojeve i dodaje provjeru za negativne brojeve koristeći naredbe if i else, ispravno vraćajući 24 za unos 4.

Faktorijel broja pomoću rekurzije

Sljedeće Python Kod ilustrira faktorijelnu funkciju korištenjem rekurzije. U ovom primjeru, rekurzivna funkcija koja uzima pozitivan cijeli broj kao ulaz određuje faktorijelni broj.

Python kodirati:

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

Izlaz:

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

Rekurzija se može objasniti kao koncept u kojem se funkcija poziva u Python Modul može pozivati ​​sam sebe iznova i iznova. Izvodi se sve dok Python uvjet prisutan u modulu je zadovoljen, pri čemu se pozvana funkcija prosljeđuje s vrijednošću.

U gore navedenom Python U programu, funkcija def factorial rekurzivno poziva samu sebe sve dok broj ne dosegne nulu. Nakon što broj dosegne nulu, inicijalizira ga kao 1, čime se rekurzija završava.

Faktorijel broja pomoću math.factorial()

Sljedeće Python Kod ilustrira faktorijelnu funkciju pomoću math.factorial(), koja se može koristiti uvozom math modula.

Ova funkcija ne prihvaća negativne cijele brojeve i izbacuje grešku vrijednosti kada su navedeni brojevi s float zarezom.

Python kodirati:

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

Izlaz:

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

Algoritam za faktorski program u Python

Uzmimo primjer koji ilustrira koncept faktorijela.

Za određivanje faktorijela 5, slijedite ove korake:

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

Evo, 5! izražava se kao 120.

Sljedeći dijagram pomaže u razumijevanju algoritma izračunavanja faktorijela, au ovom slučaju uzmimo primjer faktorijela 4!

Algoritam za faktorski program

Algoritam sa slikovnim primjerom faktorijela 4!

Primjena faktorijela u Python

Faktorijel broja ima široku razinu primjene u matematici. Ovdje su važne primjene Python:

  • Python pomaže u računanju, a zatim ispisuje faktorijele brže i učinkovitije nego drugi dostupni programski jezici.
  • The Python kod je lako razumljiv i može se replicirati na različitim platformama, a faktorijel Python Program se može uključiti u nekoliko zadataka izgradnje matematičkih modela.

Pitanja i odgovori

Faktorijel nenegativnog cijelog broja n, označen kao n!, jest umnožak svih pozitivnih cijelih brojeva od 1 do n. Na primjer, 5! jednako je 5 × 4 × 3 × 2 × 1 = 120.

Po definiciji, faktorijel od 0 je 1. Svaka metoda - petlja, rekurzija ili math.factorial() - vraća 1 za ulaz 0, a ovaj osnovni slučaj također zaustavlja rekurzivne pozive.

Da. Python Cijeli brojevi imaju neograničenu preciznost, pa math.factorial(100) vraća rezultat od 158 znamenki bez prelijevanja. Samo memorija i vrijeme izvođenja rastu s veličinom ulaza.

A za petlju obično se preferira. Oba se izvršavaju u vremenu O(n), ali petlja koristi konstantnu memoriju, dok rekurzija dodaje stog poziva koji može pogoditi Pythonrekurzivno ograničenje.

Svaka standardna metoda zahtijeva n-1 množenja, pa je vremenska složenost O(n). Iterativna petlja zadržava prostor na O(1), dok rekurzija koristi O(n) prostora za svoj stog poziva.

Duboka rekurzija može premašiti PythonZadano ograničenje funkcije je blizu 1000 poziva. Za velike ulaze koristite iterativnu petlju for ili math.factorial() ili podignite gornju granicu pomoću sys.setrecursionlimit().

Da. Faktorijeli se pojavljuju u kombinatorici i distribucijama vjerojatnosti poput Poissonove i binomne koje su temelj mnogih modela strojnog učenja. Biblioteke znanosti o podacima također nude vektorizirane faktorijalne pomoćnike za nizove.

Da. GitHub Copilot i slični AI asistenti generiraju verzije petlji, rekurzivnih i math.factorial() funkcija iz kratkog prompta. Uvijek pregledajte prijedlog za zaštitnika negativnog broja i osnovni slučaj 0!.

Sažmite ovu objavu uz: