我从这个页面复制了这段代码:
% combination(K,L,C) :- C is a list of K distinct elements
% chosen from the list L
combination(0,_,[]).
combination(K,L,[X|Xs]) :- K > 0,
el(X,L,R), K1 is K-1, combination(K1,R,Xs).
el(X,[X|L],L).
el(X,[_|L],R) :- el(X,L,R).
例如,如果输入composition(2,[1,2,3,4],L),则结果为:
L = [1, 2] ;
L = [1, 3] ;
L = [1, 4] ;
L = [2, 3] ;
L = [2, 4] ;
L = [3, 4] ;
现在我想输入一些内容,使您可以从组合的确定点开始。例如,类似:combination(2,[1,2,3,4],[1,4],L),结果:
L = [1, 4] ;
L = [2, 3] ;
L = [2, 4] ;
L = [3, 4] ;
从 [1,4] 开始组合并跳过“步骤”[1,2] 和 [1,3]。
谢谢你的帮助!