Recursion 需要帮助来编写f:N->;序言中的N

Recursion 需要帮助来编写f:N->;序言中的N,recursion,prolog,iteration,Recursion,Prolog,Iteration,我想写f:N->N f(0)=2,f(1)=0,f(2)=3 f(n)=3f(n-3)+2f(n-2)-(n-1) for n>=3. 无论是迭代还是递归 这是我到目前为止迭代得到的结果,但我一直得到N>2的3 f(0,2). f(1,0). f(2,3). f(N,F) :- N>2, N1 is N-1, N2 is N-2, N3 is N-3, f(N1,F1), f(N2,F2), f(N3,F3), F4 is F2*2,

我想写f:N->N

f(0)=2,f(1)=0,f(2)=3
f(n)=3f(n-3)+2f(n-2)-(n-1) for n>=3.
无论是迭代还是递归

这是我到目前为止迭代得到的结果,但我一直得到N>2的3

f(0,2).
f(1,0).
f(2,3).
f(N,F) :-
   N>2,
   N1 is N-1,
   N2 is N-2,
   N3 is N-3,
   f(N1,F1),
   f(N2,F2),
   f(N3,F3),
   F4 is F2*2,
   F6 is F3*3,
   F5 is F4+F6,
   F is F5-F1.
非常感谢你能给我的任何帮助

对我来说很好

?- f(5,X).
X = 12 .

?- f(6,X).
X = 3 .

?- f(7,X).
X = 30 .

?- f(8,X).
X = 12 .
也许你只是尝试了很多返回3的值

此外,您还可以:

f(N,F) :- N>2, N1 is N-1, N2 is N-2, N3 is N-3,
          f(N1,F1), f(N2,F2), f(N3,F3),
          F is 3*F3 + 2*F2 - F1.
也许: