使用 1 个参数在 Prolog 中创建斐波那契数列

Create Fibonacci Sequence in Prolog with 1 Parameter

我是 prolog 的初学者,正在尝试创建斐波那契数列规则。但它不能运行,因为称为算术 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, " ").

在此先感谢您的帮助。

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.

斐波那契如何使用 prolog 定义,我定义了元素 n0 为 0 和元素 n1 为 1 的两个基本情况

然后我确定任何其他不等于 0 或 1 的元素为 Fn-1 + Fn-2

简单地调用谓词

?- fib(6,X).

您希望 X 获得结果的位置

这个案例的结果会是

X = 8