【发布时间】:2019-10-12 10:43:57
【问题描述】:
我有几个链接的元素,它们提供了遍历它们的成本:
link(a, b, 100).
link(b, c, 223).
link(c, d, 311).
我想查找是否可以遍历,如果可以则返回总成本。
所以问题?-count(a, d, X). 返回X = 634。
这是我的尝试:
sum(A, B, X) :-
X is A + B.
count(Start, Finish, Cost) :-
link(Start, Finish, Cost).
count(Start, Finish, Cost) :-
link(Start, Through, Tempcost),
count(Through, Finish, Newcost),
sum(Cost, Tempcost, Newcost).
问题是,虽然我大致了解如何增加一个固定数字,但我很难将完全不同的数字相加并将它们传递给递归。
我当前的代码返回“参数不足。实例化”错误。我知道这通常与代码的顺序有关,所以我尝试更改它,但到目前为止没有运气。
【问题讨论】:
标签: recursion prolog calculation