Python Program för att hitta fakta om ett nummer

⚡ Smart sammanfattning

Faktorial av ett tal i Python är produkten av varje positivt heltal upp till det talet. Python beräknar den med en for-loop, en if-else-kontroll, rekursion eller den inbyggda funktionen math.factorial().

  • 🔘 För loop: Iterera från 1 till n och multiplicera en löpande produkt för att bygga faktorialen.
  • ☑️ Om-annars-kontroll: Skydda mot negativ inmatning, vilket returnerar ett fel eftersom faktorier behöver icke-negativa heltal.
  • Rekursion: En funktion anropar sig själv med n-1 tills den når basfallet 0.
  • 🧪 math.faktoriell(): Importera matematik och anropa en inbyggd funktion för ett snabbt, testat resultat.
  • 🛠️ Kantfall: Faktorialen 0 är lika med 1, och Python hanterar mycket stora resultat direkt.
  • 🤖 AI och datavetenskap: Sannolikhet, kombinatorik och bibliotek som SciPy använder faktorier på arrayer.

Python Program för att hitta fakta om ett nummer

Avsnitten nedan visar fyra sätt att beräkna en faktor i Python — en for-loop, en if-else-version, rekursion och math.factorial() — plus den underliggande algoritmen och tillämpningarna.

Faktor för ett nummer som använder för Loop

Låt oss ta upp exemplet Python kod som tar ett positivt heltal som indata för att bestämma faktorialen för positiva heltal. I följande kod börjar loopen med ett och multipliceras sedan med varje tal som föregår det faktiska tal vars faktorial ska bestämmas.

Följande Python Koden illustrerar faktorfunktionen med hjälp av en loop.

Python koda:

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)

Produktion:

Input a number
4
The factorial of the number is 24

Ovanstående Python Programmet tar endast emot positiva tal och har ingen kontroll av negativa tal. I det här programmet är faktorn 1 när j är lika med 1. När j är 2 multipliceras faktorn med 2 och det utför åtgärden tills j blir 4 för att komma fram till 24.

Faktoriell av ett nummer med hjälp av IF…else Statement

Följande Python Koden illustrerar faktorfunktionen med hjälp av en funktion. Till skillnad från loopversionen kontrollerar detta program även negativa tal innan faktorfunktionen beräknas.

I föregående Python koden tillämpades inte kontrollen för negativa tal, vilket gjorde faktorfunktionen ofullständig och benägen att leverera ett felmeddelande om negativa tal anges som indata.

I den givna koden börjar loopen med ett och multipliceras med varje föregående tal, och funktionen validerar även inmatningen för negativa tal.

Python koda:

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

Produktion:

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

Detta Python Programmet accepterar positiva tal och lägger till en kontroll för negativa tal med hjälp av if- och else-satserna, vilket korrekt returnerar 24 för en indata på 4.

Faktoriell av ett tal med hjälp av rekursion

Följande Python Koden illustrerar faktorfunktionen med hjälp av rekursion. I det här exemplet bestämmer en rekursiv funktion som tar ett positivt heltal som indata faktortalet.

Python koda:

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

Produktion:

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

Rekursionen kan förklaras som ett koncept där funktionen som anropas i Python modulen kan anropa sig själv om och om igen. Den körs tills Python villkoret som finns i modulen är uppfyllt, varvid den anropade funktionen skickas med ett värde.

I ovanstående Python I programmet fortsätter funktionen def faktorial att anropa sig själv rekursivt tills talet når noll. När talet når noll initieras talet som 1, vilket avslutar rekursionen.

Fakultet av ett tal med hjälp av math.factorial()

Följande Python Koden illustrerar faktorfunktionen med hjälp av math.factorial(), som kan användas genom att importera matematikmodulen.

Den här funktionen accepterar inte negativa heltal och utlöser ett värdefel när flyttal anges.

Python koda:

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

Produktion:

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

Algoritm för faktorprogrammet i Python

Låt oss ta ett exempel som illustrerar begreppet factorial.

För att bestämma faktorial 5, följ dessa steg:

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

Här, 5! uttrycks som 120.

Följande diagram hjälper till att förstå algoritmen för att beräkna faktorial, och i det här fallet, låt oss ta ett exempel på faktor 4!

Algoritm för faktorprogrammet

Algoritm med bildexempel på faktor 4!

Tillämpning av faktor i Python

Faktoriell av ett antal har en bred nivå av tillämpningar i matematik. Här finns viktiga tillämpningar av Python:

  • Python hjälper till vid beräkning, följt av utskriftsfaktorial i snabbare och mer effektiva termer än andra tillgängliga programmeringsspråk.
  • Ocuco-landskapet Python koden är lättförståelig och kan replikeras över olika plattformar, och faktorialen Python Programmet kan införlivas i flera uppgifter för att bygga matematiska modeller.

Vanliga frågor

Faktorialen för ett icke-negativt heltal n, skriven n!, är produkten av alla positiva heltal från 1 till n. Till exempel är 5! lika med 5 × 4 × 3 × 2 × 1 = 120.

Per definition är faktorialen för 0 1. Varje metod — loop, rekursion eller math.factorial() — returnerar 1 för indata 0, och detta basfall stoppar även rekursiva anrop.

Ja. Python Heltal har obegränsad precision, så math.factorial(100) returnerar ett resultat med 158 siffror utan spill. Endast minne och körtid växer med inmatningsstorleken.

A för slinga föredras vanligtvis. Båda körs i O(n)-tid, men loopen använder konstant minne, medan rekursion lägger till en anropsstack som kan träffa Pythons rekursionsgräns.

Varje standardmetod behöver n−1 multiplikationer, så tidskomplexiteten är O(n). Den iterativa loopen behåller utrymmet vid O(1), medan rekursion använder O(n) utrymme för sin anropsstack.

Djup rekursion kan överstiga Pythons standardgräns nära 1000 anrop. Använd en iterativ för loop eller math.factorial() för stora indata, eller höj gränsen med sys.setrecursionlimit().

Ja. Faktorer förekommer i kombinatoriska och sannolikhetsfördelningar som Poisson- och binomialfördelningar som ligger till grund för många maskininlärningsmodeller. Datavetenskapliga bibliotek erbjuder också vektoriserade faktorhjälpare för arrayer.

Ja. GitHub Copilot och liknande AI-assistenter genererar loop-, rekursiva och math.factorial()-versioner från en kort prompt. Granska alltid förslaget för negativ-number guard och 0!-basfallet.

Sammanfatta detta inlägg med: