定義一個謂詞子集(L,Sum,Subl),其中包含一個數列表L,一個數字Sum,並且將SubL與L的子序列合併,使得SubL中的數字總和爲Sum。Subset sum Prolog
例如
?- subsetsum([1,2,5,3,2], 5, SubSet);
SubSet = [1,2,2];
SubSet = [2,3];
SubSet = [5];
SubSet = [3,2];
No.
我們
sum([H1 | [H2 | Tail]], S):-
sum([[H1+H2]|Tail], S):-
sum([X], X).
和
subset([],[]).
subset([H1|T1], [H1|T2]) :- // heads are the same
subset(T1, T2).
subset([_|Rest], X):
subset(Rest, X).
變量** **必須是大寫 – CapelliC
我知道,我在定義susbsetsum功能的麻煩,謝謝 –
我必須在2個小時的考試。請有人幫我 –