Задача о рюкзаке с дополнением - Prolog

Узнай цену своей работы

Формулировка задачи:

Привет всем! Никак неполучается решить задачу. дано: камни с весом и несколько рюкзаков с максимальной вместимостью. нужно: как можно вместить камни в рюкзаки, с условием, что нелзя вмещять больше чем N камней в каждый рюкзак. спасибо!

Решение задачи: «Задача о рюкзаке с дополнением»

textual
Листинг программы
  1. kamen(4).
  2. kamen(3).
  3. kamen(2).
  4. kamen(6).
  5. kamen(1).
  6.  
  7.  
  8. weight([],0).
  9. weight([kamen(W) | Rest], X) :-
  10.   weight(Rest,RestW),
  11.   X is W + RestW.
  12.  
  13.  
  14. subseq([],[]).
  15. subseq([Item | RestX], [Item | RestY]) :-
  16.   subseq(RestX,RestY).
  17. subseq(X, [_ | RestY]) :-
  18.   subseq(X,RestY).
  19.  
  20.  
  21. legalKnapsack(Pantry, Capacity, Knapsack) :-
  22.     subseq(Knapsack, Pantry),
  23.     weight(Knapsack, W),
  24.     W =< Capacity.
  25.    
  26.    
  27. allLegalKnapsacks(Pantry, Capacity, ListOfLegalKnapsacks) :-
  28.     findall(LegalKnapsack, legalKnapsack(Pantry, Capacity, LegalKnapsack), ListOfLegalKnapsacks).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут