Мне нужно рассчитать, сколько комбинаций чисел я могу выбрать, чтобы получить сумму, равную 18, используя следующие термины: 10, 6, 1. Более того, одни и те же термины в другом порядке - это разные методы (например, 10+ 6 + 1 + 1 и 10 + 1 + 6 + 1).
selection(S, L, S) :-
member(S, L).
selection(S, L, R) :-
S > 0,
member(X, L),
SS is S - X,
selection(SS, L, RR),
R = RR + X.
Я не могу понять, как вызвать предикат, чтобы он дал желаемый результат.