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

Візьмемо за приклад 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Ліміт за замовчуванням близько 1000 викликів. Використовуйте ітеративний цикл for або math.factorial() для великих вхідних даних або підвищте межу за допомогою sys.setrecursionlimit().

Так. Факторіали з'являються в комбінаториці та розподілах ймовірностей, таких як розподіл Пуассона та біноміальний розподіл, які лежать в основі багатьох моделей машинного навчання. Бібліотеки з обробки даних також пропонують векторизовані факториальні помічники для масивів.

Так. GitHub Copilot та подібні помічники зі штучним інтелектом генерують циклічні, рекурсивні та math.factorial() версії з короткого запиту. Завжди переглядайте пропозицію щодо захисту від'ємних чисел та базового випадку 0!.

Підсумуйте цей пост за допомогою: