我想写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.
迭代和递归,
这是我到目前为止的迭代,但我继续得到3为N> 2
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.
非常感谢您给我的任何帮助!
答案 0 :(得分:0)
对我来说很好!
?- 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.