我發現了這個謂詞來計算所有可能的總和。如何計算列表中所有可能的分區?
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 \ =(200分之4)/ 10或5 \ =(10/4)/ 200
謝謝。
您能否擴展您的問題?我不明白'4'如何得到結果。 – CapelliC
@CapelliC'(200/10)/ 4 = 5' – zaquest