Python Програма за намиране на факториел на число

⚡ Умно обобщение

Факториел на число в Python е произведението на всяко положително цяло число до това число. Python изчислява го с for цикъл, проверка if-else, рекурсия или вградената функция math.factorial().

  • 🔘 За цикъл: Итерирайте от 1 до n, умножавайки текущо произведение, за да изградите факториела.
  • ☑️ Проверка „ако-иначе“: Пазете се от отрицателен вход, връщайки грешка, тъй като факториелите се нуждаят от неотрицателни цели числа.
  • ✅ Рекурсия: Функцията извиква себе си с n-1, докато достигне базовия случай 0.
  • 🧪 математика.факториал(): Импортирайте математически данни и извикайте една вградена функция за бърз и тестван резултат.
  • 🛠️ Крайни случаи: Факториелът на 0 е равен на 1 и Python обработва много големи резултати директно.
  • 🤖 Изкуствен интелект и наука за данни: Вероятностните теории, комбинаториката и библиотеките като SciPy използват факториели върху масиви.

Python Програма за намиране на факториел на число

Разделите по-долу показват четири начина за изчисляване на факториел в Python — цикъл for, версия с if-else, рекурсия и math.factorial() — плюс основния алгоритъм и приложения.

Факториал на число, използващ for Loop

Нека вземем за пример Python код, който приема положително цяло число като вход, за да определи факториела на положителни цели числа. В следващия код цикълът започва с единица и след това умножава по всяко число, което предхожда действителното число, чийто факториел трябва да се определи.

По-долу Python Кодът илюстрира факториалната функция, използвайки цикъл.

Python код:

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 код:

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 код:

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(), която може да се използва чрез импортиране на модула math.

Тази функция не приема отрицателни цели числа и хвърля грешка при задаване на стойност, когато са предоставени числа с плаваща запетая.

Python код:

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

Алгоритъм за факторна програма в Python

Нека вземем пример, който илюстрира концепцията за факториел.

За определяне на факториел 5, следвайте тези стъпки:

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

Ето, 5! се изразява като 120.

Следната диаграма помага за разбирането на алгоритъма за изчисляване на факториел и в този случай нека вземем пример за факториел 4!

Алгоритъм за факторната програма

Алгоритъм с графичен пример за факториел 4!

Приложение на Факториал в Python

Факториалът на число има широко ниво на приложение в математиката. Ето важни приложения на Python:

  • Python помага при изчисленията, последвано от отпечатване на факториел в по-бързи и по-ефективни термини от други налични езици за програмиране.
  • - Python кодът е лесно разбираем и може да бъде репликиран на различни платформи, а факториелът Python Програмата може да бъде включена в няколко задачи за изграждане на математически модели.

Въпроси и Отговори

Факториелът на неотрицателно цяло число n, записано като n!, е произведението на всички положителни цели числа от 1 до n. Например, 5! е равно на 5 × 4 × 3 × 2 × 1 = 120.

По дефиниция факториелът на 0 е 1. Всеки метод — цикъл, рекурсия или math.factorial() — връща 1 за вход 0 и този базов случай също спира рекурсивните извиквания.

Да. Python Целите числа имат неограничена точност, така че math.factorial(100) връща 158-цифрен резултат без препълване. Само паметта и времето за изпълнение нарастват с размера на входните данни.

A за цикъл обикновено се предпочита. И двата се изпълняват за O(n) време, но цикълът използва константна памет, докато рекурсията добавя стек от извиквания, който може да достигне Pythonрекурсионният лимит на .

Всеки стандартен метод изисква n−1 умножения, така че времевата сложност е O(n). Итеративният цикъл запазва пространство на O(1), докато рекурсията използва O(n) пространство за своя стек от извиквания.

Дълбоката рекурсия може да надвишава PythonЛимитът по подразбиране на `s е близо 1000 извиквания. Използвайте итеративен цикъл for или math.factorial() за големи входни данни или повишете тавана със sys.setrecursionlimit().

Да. Факториалите се появяват в комбинаториката и вероятностните разпределения, като например Поасоновото и биномиалното, които са в основата на много модели за машинно обучение. Библиотеките за наука за данни предлагат и векторизирани факториални помощници за масиви.

Да. GitHub Copilot и подобни AI асистенти генерират циклични, рекурсивни и math.factorial() версии от кратък промпт. Винаги преглеждайте предложението за защитата от отрицателно число и базовия случай 0!.

Обобщете тази публикация с: