我发现这个谓词用于计算所有可能的总和。
subset_sum(0,[],[]).
subset_sum(N,[_|Xs],L) :-
subset_sum(N,Xs,L).
subset_sum(N,[X|Xs],[X|Rest]) :-
R is N-X,
subset_sum(R,Xs,Rest).
知道除法不具有交换性质,我如何得到相同的除法结果?
该谓词仅适用于两个元素之间的划分和顺序。
subset_div(1,[],[]).
subset_div(N,[_|Xs],L) :-
subset_div(N,Xs,L).
subset_div(N,[X|Xs],[X|Rest]) :-
R is X/N,
subset_div(R,Xs,Rest).
你怎么能得到这个结果?
?-subset_div(20,[10,100,90,3,5],L).
L=[100,5].
?-subset_div(5,[10,4,59,200,12],L).
L=[200,10,4].
5= (200/10)/4 或 5 = (200/4)/10 但 5 \= (4/200)/10 或 5\= (10/4)/200
谢谢。