Как найти факториал в Python [с примерами кода]
Опубликовано: 2020-11-30Оглавление
Введение
Каждый из нас должен быть знаком со словом факториал, поскольку мы все познакомились с ним в начальной школе по предмету математика. Факториал — это произведение всех положительных целых чисел, начиная с единицы и заканчивая заданным числом. Факториал рассчитывается только для положительных значений и не может быть рассчитан для типов Negative и Float.
Когда я изучаю факториал и другие математические концепции, мне было интересно, где я буду использовать их в своей реальной жизни, благодаря Data Science, поскольку теперь я смог понять важность всех математических компонентов, таких как линейная алгебра, Вероятность, Статистика.
Давайте посмотрим на важность факториала, различные способы его расчета с помощью python в этой статье.
Важность
Давайте возьмем пример, что у нас есть гонка между 10 автомобилями в мировом гоночном событии, и у нас есть постановка задачи, чтобы выяснить, сколькими способами эти 10 автомобилей придут первыми, вторыми, третьими. Поскольку машин всего 10, мы хотели бы просто взять лист бумаги и записать различные комбинации. Но что, если у нас есть 100 автомобилей или более событий, и у нас есть такая же или похожая постановка задачи?
Чтобы справиться с такими ситуациями, у нас есть кое-что под названием Permutation . Я думаю, вы знали бы об этом термине как Перестановки и Комбинации в нашей начальной школе. Это очень необходимо, если вы хотите улучшить свои навыки анализа данных и статистики. Если вы новичок и хотите узнать больше о науке о данных, ознакомьтесь с нашими курсами по науке о данных от лучших университетов. Это помогает решить постановку задачи, как указано ниже.
Решение
Всего у нас 10 машин.
Нам нужно найти возможность 3 победителей из 10.
10! / (10-3)! = 10! / 7! = 720
Таким образом, у нас есть в общей сложности 720 возможностей для этих 10 автомобилей занять первое, второе, третье место в гонке.
Реализация Python
Python — это высокоуровневый интерпретируемый язык программирования общего назначения, ориентированный на удобочитаемость кода, а синтаксис, используемый в языке Python, помогает программистам выполнять кодирование за меньшее количество шагов по сравнению с Java или C++, и он построен на основе C.
Язык был основан в 1991 году разработчиком Гвидо Ван Россумом . Python широко используется в крупных организациях, потому что в основном в различных случаях использования искусственного интеллекта, таких как компьютерное зрение, обработка естественного языка, глубокое обучение, распознавание речи, распознавание лиц, распознавание голоса.
Python — очень мощный инструмент программирования, который можно использовать в самых разных случаях в реальной жизни. Он предлагает прямую функцию, которая может вычислить факториал заданного числа без явного написания кода. Но давайте начнем с наивного подхода и, наконец, узнаем об этой функции.
Читайте также: Почему Python так популярен среди разработчиков?
Для цикла
Мы можем вычислить факториал числа, итерируя от числа 1 до заданного числа, умножая на каждом шаге. Давайте перейдем к части кодирования описанного выше подхода.
Код
number = input («Введите число:») # В идеале вы можете использовать любое печатное сообщение
факториал = 1
if int (number) >=1: # Чтобы проверить, является ли заданное число положительным или нет.
for i in range (1, int(number)+1): # Цикл с номера 1
factorial = factorial * I # Умножение с каждым числом.
print("Факториал ", число, " is: ", factorial) # Распечатать вычисленный факториал.
Выход
Запуск приведенного выше кода даст вам следующий вывод:
Введите число :5
Факториал 5: 120
Рекурсивная функция
В этом случае мы создадим собственную пользовательскую функцию в python, которая поможет нам вычислить факториал заданного числа.

Код
число = ввод («Введите число:»)
def recursive_factorial(number): # Пользовательская рекурсивная функция.
if number == 1: # Условие, если заданное число равно 1
номер возврата
elif number < 1: # Условие, если заданное число меньше 1
return («Данное число меньше единицы, и факториал не может быть вычислен».)
еще:
возвращаемое число*recursive_factorial(число – 1)
печать (recursive_factorial (int (число)))
Выход
Запуск приведенного выше кода даст вам следующий вывод:
Введите число: 5
120
Введите число: -2
Заданное число меньше единицы и нельзя вычислить факториал.
Введите число: 1
1
Факториальная функция в Math Package
Python широко известен своей простотой использования и удобными сторонними пакетами, которые упрощают многие задачи. В текущем сценарии Python — это язык для специалистов по данным.
Код
import math # Необходимый пакет
число= ввод("Введите число: ")
print("Факториал ", число," равен: ")
print(math.factorial(int(number))) # Функция для вычисления факториала
Выход
Запуск приведенного выше кода даст вам следующий вывод:
Введите число: 5
Факториал числа 5:
120
Введите число: 5.6
Traceback (последний последний вызов):
Факториал 5,6 равен:
Файл «C:/Users….py», строка 5, в
печать (math.factorial (int (число)))
ValueError : неверный литерал для int() с основанием 10: '5.6'
Мы получаем ошибку значения, потому что мы не можем вычислить факториал целого числа с плавающей запятой. Когда мы явно пишем код Python, нам нужно позаботиться о том, чтобы проверить все условия и вывести соответствующее сообщение, но в факториальной функции пакета Math в Python он делает все за нас, что помогает нам уменьшить наш код строк, когда у нас есть использование Факториала в нашем Проекте или любая постановка задачи.
Обязательно к прочтению: учебник по Python
Заключение
В этой статье мы узнали о важности и применении факториала и других важных математических понятий в реальной жизни. Прошел через различные типы кода, чтобы вычислить факториал данного числа. В этой статье рассматривается только факториал в Python, но в пакете MATH доступно множество других математических вычислений. Люди, плохо знакомые с Python, могут глубже изучить их и даже попробовать некоторые из них.
Если вам интересно узнать о науке о данных, ознакомьтесь с программой IIIT-B & upGrad Executive PG по науке о данных , которая создана для работающих профессионалов и предлагает более 10 тематических исследований и проектов, практические семинары, наставничество с отраслевыми экспертами, 1 -на-1 с отраслевыми наставниками, более 400 часов обучения и помощи в трудоустройстве в ведущих фирмах.
Что такое рекурсия в Python?
Рекурсия в Python означает перебор данных в цикле для достижения определенного результата. Это хорошо известный математический и программный процесс, в котором что-то (оператор или функция) определяется в терминах самого себя. С помощью рекурсии пользователи или разработчики могут разбивать сложные коды и функции на более мелкие части, и создание последовательности становится гораздо более доступным. Разработчик должен проявлять особую осторожность при использовании рекурсии, поскольку довольно часто написание функции, которая никогда не завершается или потребляет чрезмерное количество памяти или мощности процессора. При правильном выполнении рекурсия может оказаться чрезвычайно эффективным и математически новаторским способом программирования.
Сколько времени нужно, чтобы изучить основы Python?
Python считается самым простым языком программирования, поэтому изучение основ Python легко и не требует много времени. Студенты или профессионалы могут посвятить 1-2 месяца изучению основ Python. Профессионал также может освоить все основные функции и библиотеки Python в течение 4-5 месяцев, посвящая этому около 2-3 часов каждый день. Понять Python несложно, так как в большинстве кодов меньше операторов и больше предопределенных функций.
Какова временная сложность факториальной программы в Python?
Из программы факториала мы обнаружили, что factorial(0) — это просто одно сравнение (1 единица времени), а factorial(n) — это одно сравнение, одно умножение, одно вычитание и время для факториала (n-1). Таким образом, мы можем сказать, что T(n) = T(n — 1) + 3 и T(0) = 1. Подставляя значения, мы находим, что T(N) прямо пропорционально n, как видно из нотации Big-Oh. В результате временная сложность факториальной программы составляет O(n).