Факториалы — это важное понятие в математике, которое часто используется при работе с перестановками и комбинациями, а также в других областях математического анализа.

Факториал числа n представляет собой произведение всех натуральных чисел, которые меньше или равны n. Обозначается он как «n!».

В этой статье мы рассмотрим три различных способа вычисления факториала числа в языке программирования Python.

Содержание

Итеративный подход

Вот как это можно сделать, используя простой итеративный подход. Ниже представлена простая программа для вычисления факториала числа на языке Python.

def factorial_iterative(n):
    # Base case: factorial of 0 is 1
    if n == 0:
        return 1
    else:
        factorial = 1
        for i in range(1, n + 1):
            factorial *= i
        return factorial

В этом коде:

  • Сначала мы проверяем, равно ли входное число нулю. Если да, мы возвращаем 1, поскольку факториал нуля определяется как единица.
  • Если число не равно нулю, мы инициализируем факториал переменной значением 1.
  • Затем мы запускаем цикл for от 1 до введенного номера включительно. Для каждого числа в этом диапазоне мы умножаем текущее значение факториала на это число.
  • Наконец, мы возвращаем полученный факториал.

Например, факториал 5 с использованием этой функции будет рассчитываться как:

print(factorial_iterative(5))  # Output: 120

Посмотрите на скриншот ниже:

Вычислить факториал числа в Python

Эта функция работает хорошо, но есть и другой способ вычисления факториала, который может показаться более понятным для тех, кто знаком с рекурсией — это рекурсивный подход.

Рекурсивный подход

Вот рекурсивная функция на Python для вычисления факториала числа:

def factorial_recursive(n):
    # Base case: factorial of 0 is 1
    if n == 0:
        return 1
    else:
        return n * factorial_recursive(n - 1)

В этом коде:

  • Мы снова начинаем с проверки, является ли входное число нулем, и если да, то возвращаем 1.
  • Если число не равно нулю, мы умножаем число на факториал на единицу меньше числа. Это делается путем рекурсивного вызова функции Factorial_recursive с аргументом n — 1.

Например, факториал 5 с использованием этой функции будет рассчитываться как:

print(factorial_recursive(5))  # Output: 120

Хвостовой рекурсивный подход

Вот код для вычисления факториала числа в Python с использованием рельсового рекурсивного подхода.

def factorial_tail_recursive(n, accumulator=1):
    # Base case: factorial of 0 is 1
    if n == 0:
        return accumulator
    else:
        return factorial_tail_recursive(n - 1, n * accumulator)

В этом коде:

  • Функция принимает два аргумента: число, для которого мы хотим вычислить факториал, и «аккумулятор», который отслеживает произведение на данный момент.
  • Если число равно нулю, функция возвращает аккумулятор, который к настоящему времени умножен на каждое число из исходного ввода до 1.
  • Если число не равно нулю, функция выполняет рекурсивный вызов, передавая на единицу меньше текущего числа и произведение текущего числа и текущего аккумулятора.

Например, факториал 5 с использованием этой функции будет рассчитываться как:

print(factorial_tail_recursive(5))  # Output: 120

Заключение

В этом уроке Python мы узнали, как вычислить факториал числа в Python, используя как итеративные, так и рекурсивные методы.

Вам также может понравиться:

  • Как удалить повторяющиеся значения из словаря Python
  • добавить нули перед числом в Python
  • Программа Python для двоичного поиска

Источник

Добавить комментарий