Задача о рюкзаке с дополнением - Prolog
Формулировка задачи:
Привет всем!
Никак неполучается решить задачу.
дано:
камни с весом и несколько рюкзаков с максимальной вместимостью.
нужно:
как можно вместить камни в рюкзаки, с условием, что нелзя вмещять больше чем N камней в каждый рюкзак.
спасибо!
Решение задачи: «Задача о рюкзаке с дополнением»
textual
Листинг программы
- kamen(4).
- kamen(3).
- kamen(2).
- kamen(6).
- kamen(1).
- weight([],0).
- weight([kamen(W) | Rest], X) :-
- weight(Rest,RestW),
- X is W + RestW.
- subseq([],[]).
- subseq([Item | RestX], [Item | RestY]) :-
- subseq(RestX,RestY).
- subseq(X, [_ | RestY]) :-
- subseq(X,RestY).
- legalKnapsack(Pantry, Capacity, Knapsack) :-
- subseq(Knapsack, Pantry),
- weight(Knapsack, W),
- W =< Capacity.
- allLegalKnapsacks(Pantry, Capacity, ListOfLegalKnapsacks) :-
- findall(LegalKnapsack, legalKnapsack(Pantry, Capacity, LegalKnapsack), ListOfLegalKnapsacks).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д