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

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

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

  • 🔘 За цикъл: Iterate from 1 to n, multiplying a running product to build the factorial.
  • ☑️ Проверка „ако-иначе“: Пазете се от отрицателен вход, връщайки грешка, тъй като факториелите се нуждаят от неотрицателни цели числа.
  • Рекурсия: Функцията извиква себе си с n-1, докато достигне базовия случай 0.
  • 🧪 математика.факториал(): Импортирайте математически данни и извикайте една вградена функция за бърз и тестван резултат.
  • 🛠️ Крайни случаи: The factorial of 0 equals 1, and Python handles very large results natively.
  • 🤖 Изкуствен интелект и наука за данни: Вероятностните теории, комбинаториката и библиотеките като SciPy използват факториели върху масиви.

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

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

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

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

По-долу Python code illustrates the factorial function using a loop.

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 condition present in the module is satisfied, wherein the function invoked is passed with a value.

В горното 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

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

For determination of factorial 5, follow these steps:

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 Програмата може да бъде включена в няколко задачи за изграждане на математически модели.

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

The factorial of a non-negative integer n, written n!, is the product of all positive integers from 1 to n. For example, 5! equals 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 default limit near 1000 calls. Use an iterative for loop or math.factorial() for large inputs, or raise the ceiling with sys.setrecursionlimit().

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

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

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