【发布时间】:2019-04-03 23:13:38
【问题描述】:
具体问题是:写谓词sum(T,S)表示树T有一条从根到叶的路径,总和为S。
我正在解决 Prolog 中的 pathsum 问题,但我对自己做错了什么感到困惑。
sum(T,S) :- mySum(T,S).
mySum([], S) :- S is 0.
mySum([H|T], S) :-
nth0(X, H, Elem),
S1 is S-Elem,
mySum(T, S1).
sum([1,2,3],3). is supposed to return yes/true.
sum([1,2,3] 4). is supposed to return yes/true.
sum([1,2,3] 6). is supposed to return no/false.
【问题讨论】:
-
我在这里看不到树,只有列表?下面三个例子的逻辑是什么?它们是否以某种方式神奇地变成了树(遵循,我只能想象,一些非任意逻辑)?