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

Факториал (!) числа n — это произведение всех положительных чисел, меньших или равных n.

Уравнение

Факториал числа определяется как:

f a c t o r i a l ( n ) = n ∗ f a c t o r i a l ( n — 1 ) factorial (n) = n * factorial (n-1) factorial (n) = n ∗ factorial (n − 1)

o r или или

f a c t o r i a l ( n ) = n ∗ ( n — 1 ) ∗ ( n — 2 ) . . . ∗ 1 factorial (n) = n * (n-1) * (n-2) … * 1 factorial (n) = n ∗ ( n − 1) ∗ (n − 2) … ∗ 1

Примечание: Факториал 0 равен 1.

Пример

Чтобы вычислить факториал 4, взгляните на следующую иллюстрацию:

4 ! = 4 ∗ 3 ∗ 2 ∗ 1 4! = 4 * 3 * 2 * 1 4! = 4 ∗ 3 ∗ 2 ∗ 1

Подходы к вычислению факториала числа в Python

В Python есть два подхода к вычислению факториала числа:

  1. Итерационный метод
  2. Рекурсивный метод

Итерационный метод

Следующий код объясняет, как вычислить факториал числа, используя итеративный подход:

 def factorial (n): fact = 1 for num in range (2, n + 1): fact * = num return fact 

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

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

Рекурсивный подход — это когда функция вызывает себя снова и снова до некоторого условия остановки. Он состоит из двух частей:

Базовый случай

Здесь останавливается рекурсия

Рекурсивный случай

Это тот случай, когда функция вызывает себя снова и снова, пока не будет достигнуто базовое условие..

f a c t o r i а l ( 4 ) = 4 ∗ f a c t o r i а l(3) factorial (4) = 4 * factorial (3) factorial (4) = 4 ∗ factorial (3)

f a c t о r i a l ( 3 ) = 3 ∗ f a c t о r i a l ( 2 ) factorial (3) = 3 * factorial (2 ) factorial (3) = 3 ∗ factorial (2)

f a c t o r i a l ( 2 ) = 2 ∗ f a c t o r i а l ( 1 ) factorial(2)=2*factorial(1) factorial (2) = 2 ∗ factorial (1)

f a c t o r i a l ( 1 ) = 1 ∗ f a c t o r i a l ( 0 ) факториал (1) = 1 * факториал (0) factorial (1) = 1 * factorial (0)

На следующем рисунке объясняется, как вычислить факториал число с использованием рекурсии в Python:

1 из 10

 def factorial (n): if n == 1: #base case return n else: return n * factorial (n-1)  # рекурсивный casenumber = 4if number  

Оцените статью
nanomode.ru
Добавить комментарий