Python Programm arvu faktoriaali leidmiseks

⚡ Nutikas kokkuvõte

Arvu faktoriaal Python on iga positiivse täisarvu korrutis kuni selle arvuni. Python arvutab selle for-tsükli, if-else kontrolli, rekursiooni või sisseehitatud math.factorial() funktsiooni abil.

  • 🔘 Tsükli jaoks: Itereeri 1-st n-ni, korrutades jooksvat korrutist faktoriaali moodustamiseks.
  • ☑️ Kui-muul juhul kontroll: Kaitse negatiivse sisendi eest, mis tagastab vea, kuna faktoriaalid vajavad mittenegatiivseid täisarve.
  • Rekursioon: Funktsioon kutsub ennast n-1-ga välja seni, kuni see jõuab baasjuhtumini 0.
  • 🧪 matemaatika.faktoriaal(): Impordi matemaatika ja kutsu üks sisseehitatud funktsioon kiire ja testitud tulemuse saamiseks.
  • 🛠️ Äärmuslikud juhtumid: 0 faktoriaal võrdub 1-ga ja Python käsitleb väga suuri tulemusi natiivselt.
  • 🤖 Tehisintellekt ja andmeteadus: Tõenäosus, kombinatoorika ja teegid nagu SciPy kasutavad massiividel faktoriaale.

Python Programm arvu faktoriaali leidmiseks

Allolevates osades on näidatud neli viisi faktoriaali arvutamiseks Python — for-tsükkel, if-else versioon, rekursioon ja math.factorial() — pluss aluseks olev algoritm ja rakendused.

Silmuse jaoks kasutatava arvu faktoriaal

Võtame näiteks Python kood, mis võtab sisendiks positiivse täisarvu positiivse täisarvu faktoriaali määramiseks. Järgnevas koodis algab tsükkel ühega ja seejärel korrutatakse iga arvuga, mis eelneb tegelikule arvule, mille faktoriaali määratakse.

Järgmised Python kood illustreerib faktoriaalfunktsiooni tsükli abil.

Python kood:

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)

Väljund:

Input a number
4
The factorial of the number is 24

Ülaltoodud Python Programm võtab sisendiks ainult positiivseid arve ja ei kontrolli negatiivseid arve. Selles programmis on tegur 1, kui j on võrdne 1-ga. Kui j on 2, korrutatakse tegur 2-ga ja seda toimingut tehakse seni, kuni j jõuab 4-ni, saades tulemuseks 24.

Arvu faktoriaal, kasutades lauset IF…else

Järgmised Python kood illustreerib faktoriaalfunktsiooni funktsiooni abil. Erinevalt tsükliversioonist kontrollib see programm enne faktoriaali arvutamist ka negatiivseid arve.

Eelmises Python koodis ei rakendatud negatiivsete arvude kontrolli, mistõttu faktoriaalfunktsioon oli mittetäielik ja andis kalduvuse veateatele, kui sisendiks on antud negatiivsed arvud.

Antud koodis algab tsükkel ühega ja korrutab iga eelneva arvuga ning funktsioon kontrollib ka sisendit negatiivsete arvude osas.

Python kood:

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

Väljund:

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

see Python Programm aktsepteerib positiivseid arve ja lisab negatiivsete arvude kontrolli, kasutades if ja else lauseid, tagastades sisendi 4 korral õigesti väärtuse 24.

Arvu faktoriaal rekursiooni abil

Järgmised Python kood illustreerib faktoriaalfunktsiooni rekursiooni abil. Selles näites määrab rekursiivne funktsioon faktoriaalnumbri, mis võtab sisendiks positiivse täisarvu.

Python kood:

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

Väljund:

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

Rekursiooni saab seletada kontseptsioonina, kus funktsioonis kutsutakse välja Python moodul saab ennast ikka ja jälle kutsuda. See töötab seni, kuni Python moodulis olev tingimus on täidetud, mille kohaselt välja kutsutud funktsioon edastatakse koos väärtusega.

Ülalpool Python Programmis kutsub funktsioon def faktoriaal ennast rekursiivselt välja seni, kuni arv jõuab nullini. Kui arv jõuab nullini, initsialiseeritakse see arvuks 1, lõpetades rekursiooni.

Arvu faktoriaal, kasutades funktsiooni math.factorial()

Järgmised Python kood illustreerib faktoriaalfunktsiooni math.factorial() abil, mida saab kasutada matemaatikamooduli importimise teel.

See funktsioon ei aktsepteeri negatiivseid täisarve ja annab ujukomaarvude sisestamisel väärtusvea.

Python kood:

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

Väljund:

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

Algoritm tegurprogrammi jaoks Python

Võtame näite, mis illustreerib faktoriaali mõistet.

Faktoriaali 5 määramiseks toimige järgmiselt.

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

Siin, 5! väljendatakse kui 120.

Järgnev diagramm aitab mõista faktoriaali arvutamise algoritmi ja antud juhul võtame näite faktoriaalist 4!

Faktorprogrammi algoritm

Algoritm cum faktoriaali 4 piltnäide!

Factoriali rakendamine sisse Python

Arvu faktoriaalil on matemaatikas laialdased rakendused. Siin on olulised rakendused Python:

  • Python aitab arvutamisel, millele järgneb faktoriaali printimine kiiremini ja tõhusamalt kui teised saadaolevad programmeerimiskeeled.
  • . Python kood on kergesti mõistetav ja seda saab kopeerida erinevatel platvormidel ning faktoriaal Python Programmi saab kaasata mitmetesse matemaatiliste mudelite loomise ülesannetesse.

KKK

Mittenegatiivse täisarvu n faktoriaal, mida kirjutatakse kui n!, on kõigi positiivsete täisarvude 1-st n-ni korrutis. Näiteks 5! võrdub 5 × 4 × 3 × 2 × 1 = 120.

Definitsiooni järgi on 0 faktoriaal 1. Iga meetod – tsükkel, rekursioon või math.factorial() – tagastab sisendi 0 korral väärtuse 1 ja see baasjuhtum peatab ka rekursiivsed kõned.

Jah. Python Täisarvudel on piiramatu täpsus, seega math.factorial(100) tagastab 158-kohalise tulemuse ilma ületäitumiseta. Ainult mälu ja jooksuaeg kasvavad sisendmahuga.

A silmuse jaoks on tavaliselt eelistatud. Mõlemad töötavad O(n) aja jooksul, kuid tsükkel kasutab konstantset mälu, samas kui rekursioon lisab väljakutsete pinu, mis võib tabada Pythonrekursioonipiirang.

Iga standardmeetod vajab n−1 korrutamist, seega on aja keerukus O(n). Iteratiivne tsükkel hoiab ruumi O(1) juures, samas kui rekursioon kasutab oma väljakutsete pinu jaoks O(n) ruumi.

Sügav rekursioon võib ületada PythonVaikimisi piirang on umbes 1000 väljakutset. Suurte sisendite korral kasutage tsükli jaoks iteratiivset meetodit või funktsiooni math.factorial() või tõstke ülemmäära funktsiooniga sys.setrecursionlimit().

Jah. Faktoriaalid esinevad kombinatoorikas ja tõenäosusjaotustes, näiteks Poissoni ja binoomjaotuses, mis on paljude masinõppemudelite aluseks. Andmeteaduse teegid pakuvad ka vektoriseeritud faktoriaalide abilisi massiividele.

Jah. GitHub Copilot ja sarnased tehisintellekti assistendid genereerivad lühikese käsuviiba põhjal tsükli-, rekursiivseid ja math.factorial() versioone. Vaadake alati üle negatiivse arvu valvuri ja 0! baasjuhtumi soovitus.

Võta see postitus kokku järgmiselt: