Создать последовательность Фибоначчи в прологе с 1 параметром
Я новичок в прологе и пытаюсь создать правила последовательности Фибоначчи. Но он не может работать из-за ошибки в коде, называемом арифметическим. Fib не является функцией.
Исходный код для моего кода:
fib(N):-
N<1, S is 0,
N<2, S is 1,
N1 is fib(N-1),
N2 is fib(N-2),
S is N1 + N2,
write(S, " ").
Заранее спасибо за помощь.
1 ответ
Решение
fib(0,0).
fib(1,1).
fib(N,R):- N>1,
N1 is N-1,
N2 is N-2,
fib(N1,R1),
fib(N2,R2),
R is R1+R2.
Таким образом, как фибоначчи могут быть определены с использованием пролога, я определил два базовых случая, когда элемент n0 равен 0, а элемент n1 равен 1
а затем я определил любой другой элемент, который не равен 0 или 1, чтобы быть Fn-1 + Fn-2
называть предикат просто
?- fib(6,X).
где вы ожидаете, что X будет иметь результат
результат этого случая будет
X = 8