Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2010, 22:00   #1
SeRhy
Форумчанин
 
Аватар для SeRhy
 
Регистрация: 19.10.2007
Сообщений: 168
Вопрос prolog.поднесение числа к степени (х-2)

у меня стоит задача разработать алгоритм и программу с использованием рекурсии вичесления значения функции:
система:
F(x)=3, при х=2
F(x)=(F(x-1))в степени (х-2), при х>2

я питался стелать таким образом
PHP код:
predicates
 func
(integer,integer)
 
step(integer,integer,integer)
clauses
 func
(X,Y):-X=2,Y=3.
 func
(X,Y):-X>2,X2=X-2,X1=X-1,func(X1,Y1),step(Y1,X2,Y).
 
step(X,Y,Z):-X=2,Y=0,Z=1,fail.
 
step(X,Y,Z):-Y>0,Y1=Y-1,step(X,Y1,Z1),Z1=Z*X
но у меня выводит да или нет, а обчислять функцию в степени не хочет, просьба помочь.
Зарание спасиба.
SeRhy вне форума Ответить с цитированием
Старый 26.10.2010, 23:13   #2
Kingdom_Reborn
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 130
По умолчанию

Код:
predicates
	pow(integer, integer, integer)
	f(integer, integer)
clauses
	pow(_, 0, Z) :- Z = 1, !.
	pow(A, N, Z) :- N mod 2 = 0, N1 = N div 2, pow(A, N1, Z1), Z = Z1 * Z1.
	pow(A, N, Z) :- N mod 2 <> 0, N1 = N - 1, pow(A, N1, Z1), Z = Z1 * A.
	
	f(2, Y) :- Y = 3, !.
	f(X, Y) :- X > 2, X1 = X - 1, f(X1, Y1), N = X - 2, pow(Y1, N, Y), !.
goal
	f(4, Z),
	write(Z).

Последний раз редактировалось Kingdom_Reborn; 26.10.2010 в 23:19.
Kingdom_Reborn вне форума Ответить с цитированием
Старый 25.02.2011, 22:39   #3
fat-lip
 
Регистрация: 15.05.2010
Сообщений: 3
По умолчанию

кто вас учил оформлять?
fat-lip вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить корень 5 степени из положительного числа Dartchuwak Общие вопросы C/C++ 4 12.12.2009 22:08
Вычислить корень 5-ой степени из числа a с точностью E С++ Dartchuwak Помощь студентам 0 10.12.2009 18:07
Поднесение к степени Halifath Помощь студентам 7 02.09.2009 09:45