Задача о рюкзаке с дополнением - 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).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д