Обобщающая последовательность Фибоначчи с помощью SICStus Prolog
Я пытаюсь найти решение для запроса по обобщенной последовательности Фибоначчи (GFS). Вопрос: есть ли GFS, у которых 885 в качестве 12-го числа? Начальные 2 числа могут быть ограничены от 1 до 10.
Я уже нашел решение найти N-е число в последовательности, которая начинается с (1, 1), в которой я явно определяю начальные числа. Вот что у меня есть для этого:
fib(1, 1).
fib(2, 1).
fib(N, X) :-
N #> 1,
Nmin1 #= N - 1,
Nmin2 #= N - 2,
fib(Nmin1, Xmin1),
fib(Nmin2, Xmin2),
X #= Xmin1 + Xmin2.
Для упомянутого запроса я думал, что следующее поможет, в котором я повторно использую метод fib без явного определения начальных чисел, так как теперь это нужно делать динамически:
fib(N, X) :-
N #> 1,
Nmin1 #= N - 1,
Nmin2 #= N - 2,
fib(Nmin1, Xmin1),
fib(Nmin2, Xmin2),
X #= Xmin1 + Xmin2.
fib2 :-
X1 in 1..10,
X2 in 1..10,
fib(1, X1),
fib(2, X2),
fib(12, 885).
... но это не похоже на работу.
Разве невозможно таким образом определить начальные числа, или я делаю что-то ужасно неправильно? Я не прошу решения, но любой совет, который мог бы помочь мне решить это, был бы очень признателен.