具有回溯功能的 prolog 中的函数
Function in prolog with backtracking
函数是
backtracking function f(n,k)
或
f(n, k) = n * k, if n = k
= n ∗ f(n−1, k), if n > k
= k ∗ f(n, k−1), if n < k
Prolog谓词fn/3
赋值以实现上述功能
你能帮我解决上面的功能吗?
谢谢
您可以尝试使用以下谓词。
f(N, K, R):-
N = K ,
R is N*K,!.
f(N, K, R):-
N>K,
Nx is N-1,
f(Nx,K,Res),
R is N*Res.
f(N, K, R):-
N<K,
Kx is K-1,
f(N,Kx,Res),
R is K * Res.
R 会得到你想要的结果。
函数是
backtracking function f(n,k)
或
f(n, k) = n * k, if n = k
= n ∗ f(n−1, k), if n > k
= k ∗ f(n, k−1), if n < k
Prolog谓词fn/3
赋值以实现上述功能
你能帮我解决上面的功能吗? 谢谢
您可以尝试使用以下谓词。
f(N, K, R):-
N = K ,
R is N*K,!.
f(N, K, R):-
N>K,
Nx is N-1,
f(Nx,K,Res),
R is N*Res.
f(N, K, R):-
N<K,
Kx is K-1,
f(N,Kx,Res),
R is K * Res.
R 会得到你想要的结果。