0
Я пытаюсь, чтобы все мои C в том же списке,Прологе список элементов в списке
Как:
?- channels(C,3). C = [[1, 2], [1, 3], [2, 3]] ;
но то, что я получаю это:
?- channels(C,3). C = [[1, 2]] ; C = [[1, 3]] ; C = [[2, 3]] ;
Мой код:
channels([C],N) :- range(1,N,L), combination(2,L,C).
range(I,I,[I]).
range(I,K,[I|L]) :- I < K, I1 is I + 1, range(I1,K,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).
Пожалуйста, помогите мне
Пожалуйста, приложите больше усилий, чтобы заявить, что вы хотите. В настоящее время все догадки – false
Глядя на желаемый результат и ваш фактический результат, я думаю, что это будут «каналы (LC, N): - findall (C, (диапазон (1, N, L), комбинация (2, L, C)), LC). – gusbro
Да, извините, но ваше решение сработало, поэтому вы поняли его так, как должны, но большое вам спасибо. – VHdk