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

Вы используете его, чтобы узнать, как можно спроектировать рассадку или выбрать футболки для отпуска на Мальдивы. Но как вычислить факториал числа?

Что такое факториал числа?

Факториал положительного числа — это произведение всех положительных целых чисел, меньших или равных значению самого числа. Число, за которым следует восклицательный знак (!) обозначает факториал числа. Вы представляете факториал пяти как 5! и рассчитать его как:

5! = 5 * 4 * 3 * 2 * 1 = 120

Другой способ визуализации:

5! = 5 * 4! где 4! = 4 * 3!, 3! = 3 * 2! и так далее, пока не получится 1! = 1 * 0! что 1.

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

Что такое рекурсия?

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

Вы можете использовать рекурсию для решения соответствующих проблем в три простых шага:

  1. Найдите базовый случай: Если функция всегда вызывает сама себя, процесс будет бесконечным. Чтобы этого не произошло, определите базовый вариант, который станет логической точкой остановки для вашей функции. Например, в факториальной программе остановите вычисление на нуле. Это становится базовым случаем для проблемы.
  2. Найдите связь между проблемой и подзадачами: Разбейте большую проблему на подзадачи. Например, задача состоит в том, чтобы найти факториал числа пять. Предположим, у вас есть ответ факториала четырех, то есть 24. Как получить факториал пяти, используя 24? Умножая на него пять. Это отношение между проблемой и подзадачей.
  3. Обобщите отношение, найденное на шаге 2: Теперь, когда у вас есть отношение, обобщите его в терминах n. Итак, факториал числа n — это произведение n и факториала n-1.

Вы можете использовать эту концепцию для найти сумму n натуральных чисел, рассчитать НОД, НОК, ряды Фибоначчи и проверить простые числа.

Псевдокод для факториальной функции с использованием рекурсии

Это как вы используете рекурсию и напишите псевдокод для создания вашей программы на любом языке. В разных языках синтаксис и исполнение меняются, но логика остается неизменной.

функцияФакт(н)
Если п == 0 затем // базовый вариант
Возвращаться1
Возвращаться n * Факт вызова (n - 1) // обобщенное отношение

Факториальная программа на C

C был первым высокоуровневым, независимым от платформы языком программирования. Он имеет строгий синтаксис, чувствителен к регистру и выполняет код с максимальной скоростью. Это процедурный язык программирования, поэтому вы объявляете любую функцию поверх основной функция. Вот как вы можете построить факториальную программу, используя рекурсию на языке C:

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

  1. Импортируйте файл заголовка стандартного ввода-вывода для отображения вывода на экране.
    #включать <stdio.h>
  2. Определить функцию факт и возьми целое число н как аргумент.
    интфакт(инт н){
  3. Запишите базовый случай функции, используя если утверждение и проверьте его равенство, используя ==. Если n равно нулю, вернуть единицу.
     если (n == 0)
    возвращаться1;
  4. Напишите обобщенное уравнение и верните произведение н с вызовом функции подзадачи п-1.
    возвращаться н * факт (н - 1);
    }
  5. Объявите функцию main и инициализируйте переменную целочисленного типа для хранения числа, факториал которого вы хотите найти.
    интосновной(){
    инт число = 5;
  6. Вывести факториал числа с помощью printf() функция. %d является спецификатором десятичного формата. Используйте каждый из спецификаторов формата, чтобы заменить его числом, факториал которого вы хотите найти, и получите результат, вызвав функцию.
     printf("Факториал %d равен %d", число, факт (число));
    возвращаться0;
    }

Факториальная программа на Java

Java является компилируемым языком программирования и не зависит от платформы. Вы храните весь код внутри сорт и выполнение начинается с основной функция. Он чувствителен к регистру и имеет строгий синтаксис. Код немного длиннее, но быстрее по сравнению с Python. Вот как вы можете построить факториальную программу, используя рекурсию в Java:

  1. Определите основной класс.
    сортОсновной{
  2. Определите статическую функцию с типом возвращаемого значения int, которая принимает переменную n целочисленного типа. Вы объявили статический метод, поскольку основной метод в Java также объявлен как статический. Кроме того, вы не можете вызывать нестатический метод из статического экземпляра.
    статическийинтфакт(инт н){
  3. Запишите базовый случай функции, используя если утверждение и проверьте его равенство, используя ==. Если n равно нулю, вернуть единицу.
     если (n == 0)
    возвращаться1;
  4. Напишите обобщенное уравнение и верните произведение н с вызовом функции подзадачи п-1.
    возвращаться н * факт (н - 1);
    }
  5. Объявите основную функцию в Java. Объявите модификатор доступа как публичный, поэтому он может быть доступен для всех других классов и методов. Вы объявляете основную функцию как статический чтобы компилятор мог вызывать его без создания экземпляра класса. Тип возврата пустота, и он принимает аргументы типа Нить. Сохраните число, факториал которого вы хотите найти.
    публичныйстатическийпустотаосновной(строка [] аргументы){
    инт число = 5;
  6. Использовать println() метод, экземпляр Принтстрим класс, определенный в Система класс для отображения факториала числа.
     Система.out.println("Факториал " + число + " является " + факт (число));
    }
    }

Факториальная программа на Python

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

Синтаксис проще, с небольшой длиной кода, но для его выполнения требуется немного больше времени, чем в других языках. Вот как вы можете построить факториальную программу, используя рекурсию в Python:

  1. Определите факт функции, который принимает в качестве аргумента n.
    деффакт(н):
  2. Запишите базовый случай функции, используя если утверждение и проверьте его равенство, используя ==. Если n равно нулю, вернуть единицу.
     если п == 0:
    возвращаться1
  3. Напишите обобщенное уравнение и верните произведение н с вызовом функции подзадачи п-1.
    возвращаться n * факт (n-1)
  4. Сохраните число, факториал которого вы хотите найти, и отобразите его с помощью оператора печати.
    число = 5;
    Распечатать("Факториал", число, "является", факт (число))

Есть много приложений рекурсии

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

Это также мощный метод сортировки структур данных, таких как дерево, или алгоритмов сортировки, таких как быстрая сортировка и сортировка слиянием. Вы также можете использовать рекурсию в алгоритмах поиска, таких как двоичный поиск, математические выражения, такие как ряды Фибоначчи, и т. д.