- Философия, эзотерика:
- Религии:
- Познавательное
(обо всём)
/* GoogleAds */
Программа «Факториал» - демонстрация обобщенного правила рекурсии для вычисления факториала целого числа. Факториал числа 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
!!Рекомендуем: Семейная Энциклопедия Здоровья ⇒ Что должен знать современный человек? ⇒ Самоанализ. Работа над собой ⇒ Оглавление ⇒ Главная сайта