/* GoogleAds */

Главная

ПРОЕКТ "ЧЕЛОВЕК. ЗЕМЛЯ. ВСЕЛЕННАЯ"

Инструменты пользователя

Инструменты сайта


project:prolog:listing:faktorial



Программа "Факториал"

Программа «Факториал» - демонстрация обобщенного правила рекурсии для вычисления факториала целого числа. Факториал числа N! есть произведение всех целых чисел от 1 до N: N! = N * (N-1) * (N-2) * … 2 * 1

Для вычисления факториала используется последовательное произведение. Его значение получается после извлечения значений Number из стека в качестве списка параметров для последнего подправила после того, как рекурсия была остановлена.

/* 17.03.2012
Демонстрация использования обобщённого правила рекурсии для нахождения факториала простого числа.
Факториал числа N! есть произведение всех целых чисел от 1 до N: N! = N * (N-1) * (N-2) * ... 2 * 1
Процедура использует предикат cut для запрещения отката.
Пример:7! = 7*6*5*4*3*2*1 = 5040 
 
Среда - EZY Prolog */
 
domains
 
number, product = integer
 
predicates
 
/* Для больших чисел: number, product = real */
factorial(number, product)
 
clauses
 
factorial(1,1) :- !.
 
factorial(Number,Result) :- Next_number = Number -1, write("1 - Next_number = ", Next_number), nl,
factorial(Next_number,Partial_factorial), write("2 - Next_number = ", Next_number), nl, write("2 - Partial_factorial = ", Partial_factorial), nl, 
Result = Number * Partial_factorial, write("3 - Result = ", Result), nl, write("2 - Number = ", Number), nl, write("3 - Partial_factorial = ", Partial_factorial), nl.
 
goal
 
factorial(7,Result),
write(" 7! =",Result),nl.

Результат:

7! =5040

!!Рекомендуем: Семейная Энциклопедия ЗдоровьяЧто должен знать современный человек?Самоанализ. Работа над собойОглавлениеГлавная сайта

project/prolog/listing/faktorial.txt · Последние изменения: 2023/09/03 22:22 (внешнее изменение)

Вы можете оставить свои комментарии в разделе "Обсуждение".
Рекомендуем оформить подписку на новости данного раздела. Для этого нажмите на кнопку "Подписаться", расположенную справа снизу каждой страницы (знак конверта).




Индекс цитирования