Рекурсия: найти n-й член числовой последовательности, которая определяется рекуррентной формулой - Prolog

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! Нужна помощь в решении задачи. Найти n-й член числовой последовательности, которая определяется рекуррентной формулой a1 = 1, a2 = 2, a3 = 3, an+1 = 3an + 2an–1 + an–2. Вот пример того, как я пытался ее решить:
Проблема заключается в том, что я не знаю как из индекса n вычитать число. К сожалению похожие темы на форуме не смогли мне помочь, совсем. Надеюсь что кто-то отзовется. Заранее спасибо.

Решение задачи: «Рекурсия: найти n-й член числовой последовательности, которая определяется рекуррентной формулой»

textual
Листинг программы
predicates
   pos(integer, integer)
   pos_accum(integer, integer, integer, integer, integer, integer)
clauses
   pos(1 ,1) :- !.
   pos(2, 2) :- !.
   pos(3, 3) :- !.
   pos(N, P):- 
      pos_accum(N, 3, 3, 2, 1, P).
 
   pos_accum(N, N, P, _, _, P) :- !.
   pos_accum(N, K, P1, P2, P3, P) :-
      K1 = K+1,
      P0 = 3*P1 + 2*P2 +P3,
      pos_accum(N, K1, P0, P1, P2, P).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.3 из 5
Похожие ответы