Как создать список чисел, которые в сумме дают определенное число

Мне нужна помощь в написании предиката в Prolog, который, учитывая число в качестве входных данных, возвращает список списков с числами, которые складываются в него .

Назовем предикат addUpList / 2 , он должен работать следующим образом:

?- addUpList(3,P).
P = [[1,2], [2,1], [1,1,1]].       % expected result

У меня так много проблем, чтобы понять это, я начинаю думать, что это невозможно. Любые идеи? Заранее спасибо.

7
задан repeat 27 June 2015 в 11:09
поделиться