Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.15;
Скачать: CL | DM;

Вниз

Пролог и выход с цикла   Найти похожие ветки 

 
Fl@sh ©   (2005-12-21 16:55) [0]

Задали задание на прологе для нахождения n-го числа Фибоначчи
Числа Фибоначчи находятся за правилом: первые 2 числа = 1, а следующие суме двух предидущих. Т.е. 1, 1, 2, 3, 5, 8, 13, 21...

Вот код:

predicates
 fabon(integer, integer)
fabon(integer, integer, integer, integer, integer)

clauses
fabon(N, NewRes) :-
 fabon(N, NewRes, 1, 1, 1).
 fabon(N, Res, I, Res, M) :-
  I <= N and
  ! and
  NewI = I + 1 and
  NewRes = Res + M and
  NewM = NewRes - M and
  write(NewRes, " \n") and
  fabon(N, NewRes, NewI, NewRes, NewM),  
  fail.
 %fabon(N, Res, I, Res, _) :- I > N.


Так вот, как выити с цикла, и чтоб вивело значение?
Пишу в Goal: Fabon(5, X)
Виводит:
2, 3, 5, 8, 13.
И потом No Solution
Как сделать чтоб выводило 1 Solution X = 13???
Раньше Kerk имел дело с этим языком, мож еще кто поможет..


 
Mike Kouzmine ©   (2005-12-21 17:02) [1]

predicates
fabon(integer, integer)

clauses
fabon(1, 1).
fabon(N, Res):-
   fabon(N - 1, NewRes),  
   Res = N * NewRes.


 
Mike Kouzmine ©   (2005-12-21 17:24) [2]

Или с проверками

predicates
fabon(integer, integer)

clauses
fabon(N,0) :- N < 0.
fabon(0, 0).
fabon(N, Res):-
  fabon(N - 1, NewRes),  
  Res = N + NewRes.

Можно так

predicates
fabon(integer, integer)

clauses
fabon(N,0) :- N < 0.
fabon(N, Res):-
  fabon(N - 1, NewRes),  
  Res = N + NewRes.


 
Fl@sh ©   (2005-12-22 19:24) [3]


> fabon(N - 1, NewRes),  

Говорит что тут ошибка, хочет вставлять запитую, после N


 
Чапаев ©   (2005-12-22 19:28) [4]


> И потом No Solution

Разберись толком, что такое "восклицательный знак". ;-)


 
Чапаев ©   (2005-12-22 19:30) [5]


> Говорит что тут ошибка, хочет вставлять запитую, после N

M=N-1,
fabon(M,NewRes),...


 
Fl@sh ©   (2005-12-22 19:38) [6]

! - отмена бектрекинга!!!



Страницы: 1 вся ветка

Текущий архив: 2006.01.15;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.044 c
14-1134898418
Virgo_Style
2005-12-18 12:33
2006.01.15
аська и почта на мобильном


14-1135262887
BFG9k
2005-12-22 17:48
2006.01.15
Обьясните механизм извлечения dcu файла из пакета


5-1120111375
ORMADA
2005-06-30 10:02
2006.01.15
PageControl и [<>] прокрутка


14-1135245189
bill2
2005-12-22 12:53
2006.01.15
Вот так вот захочешь денег поднять а тут ...


14-1134541199
Жук
2005-12-14 09:19
2006.01.15
Запуск Д6