Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2013, 20:22   #1
eszqsx
Новичок
Джуниор
 
Регистрация: 22.02.2013
Сообщений: 1
По умолчанию Задача с грузовиками пролог д

задача:загрузить набор грузов, заданный списком весов грузов в несколько одинаковых грузовиков.

gruz([],_,0,[]).
gruz([a|B],c,n,[a|D]):-НЕ(БОЛЬШЕ(a,c)),gruz(B,#c-a#,n,D).
gruz([_|B],c,n,D):-gruz(B,c,D).
gruz(B,c,n,D):-БОЛЬШЕ(n,0),gruz(B,20,#n-1#,D).
?gruz([1,3,6,5,2,3,4,7,9,13,17],20,4,V).

По строчкам: (после каждого действия переход к пункту 1)
1) если грузовиков=0 - косяк в данных
2) если грузы есть - вытаскиваем первый, если в грузовик вмещается - грузим, убавляем оставшуюся грузоподъемность
3) если не вмещается - пропускаем этот груз[тут косяк, не ясно как его пропустить не выкидывая из списка]
4) если еще остались грузовики, загружаем следующий из них, убавляя кол-во свободных и сбрасывая грузоподъемность
вызов([список масс грузов], грузоподъемность, количество грузовиков, %ответ%)

Помогите с пунктом №3 ,не могу разобраться как сделать.
eszqsx вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Клиент-сервер на C#. Задача с грузовиками.События. SheShe Помощь студентам 2 01.12.2012 14:11
Пролог Psayker Помощь студентам 0 25.12.2011 19:03
ПРОЛОГ! _Таша_ Помощь студентам 0 23.05.2010 19:06