Форум программистов, компьютерный форум, киберфорум
Наши страницы
Prolog
Войти
Регистрация
Восстановить пароль
 
Ольга Я
0 / 0 / 0
Регистрация: 03.02.2013
Сообщений: 13
#1

GUI Prolog - найти все возможные способы полной упаковки рюкзака - Prolog

30.03.2013, 20:32. Просмотров 497. Ответов 4
Метки нет (Все метки)

Здравствуйте. Помогите написать программу на прологе.
Даны набор элементов багажа разного веса (в виде списка) и грузоподъемность рюкзака. Найти все возможные способы полной упаковки рюкзака.

Есть начало.
Для заданных фактов:
Prolog
1
2
3
4
5
6
p(molotok,1).
p(palatka,3).
p(verevka,2).
 
z(N,[A]):-p(A,W), N2=N-W, N2>=0.     
z(N,[A|Tail]):-N>0,p(A,W),N1=N-W,z(N1,Tail).
N - вес рюкзака.

выводит элементы, которые можно положить (не больше веса рюкзака).
Нужно, чтобы была полная загрузка. И варианты не повторялись (в одном варианте не было два молотка к примеру).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2013, 20:32
Я подобрал для вас темы с готовыми решениями и ответами на вопрос GUI Prolog - найти все возможные способы полной упаковки рюкзака (Prolog):

Логическая задача на Turbo prolog или Gui prolog
Может у кого есть исходни на Prolog ЗЫ заранее спаисбо)

Найти все возможные перестановки
Условие задачи состоит в том что у нас есть кинотеатр, и там показывают 3...

GUI, оконный интерфейс, диалог [SWI Prolog]
Помогите, пожалуйста создать форму на SWI Prolog!! или скажите где можно найти...

Создание сайта на Wordpress. Все возможные способы
Доброго времени суток ув. Форумчане. Хочу писать/делать/создавать сайты на ...

Вывести на экран все возможные различные способы представления числа в виде суммы натуральных чисел
Дано натуральное число N. Требуется получить и вывести на экран все возможные...

Локальная сеть между 2 зданиями (Возможные способы реализации)
Здравствуйте Уважаемые форумчане. Есть задача объединить 2 здания в ЛВС. Сеть...

4
Грымзик
2477 / 1454 / 34
Регистрация: 14.09.2009
Сообщений: 2,742
31.03.2013, 13:46 #2
Prolog
1
2
3
4
5
6
7
p(molotok,1).
p(palatka,3).
p(verevka,2).
 
z(N,[A]):-p(A,N).
z(N,[A,B|Tail]):-N>0, p(A,W), N1 is N-W,
    z(N1,[B|Tail]), compare(<,A,B).
На свой диалект самостоятельно переведите. Первое правило изменено для полной запаковки. A<B сделано, что бы не просто двух молотков не было, а что бы и не были одинаковые раскладки в разном порядке.
0
Ольга Я
0 / 0 / 0
Регистрация: 03.02.2013
Сообщений: 13
31.03.2013, 15:01  [ТС] #3
Спасибо. Но это работает, только если сумма элементов совпадает с весом рюкзака. Напр: z(4,X).
X = [molotok,palatka] .
Если введу : z(10,X). выведет no
0
Грымзик
2477 / 1454 / 34
Регистрация: 14.09.2009
Сообщений: 2,742
31.03.2013, 15:11 #4
Тогда не поняла, что означает "полная" упаковка, если 10 вообще невозможно полностью упаковать. Если устраивает не полная упаковка, то верните первое правила.
0
Ольга Я
0 / 0 / 0
Регистрация: 03.02.2013
Сообщений: 13
31.03.2013, 15:58  [ТС] #5
если предположим грузоподъемность рюкзака 10 , то туда можно положить и палатку и молоток и веревку., так как все войдет.
0
31.03.2013, 15:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2013, 15:58
Привет! Вот еще темы с решениями:

Найти все возможные комбинации
Есть строка, к примеру . Где первая цифра в ячейке это номер предмета, а после...

Найти все возможные значения чисел
задано количество разрядов числа диапазона unsigned long, имеющих значение L....

Найти все возможные значения уравнения
1) числа a,b,c попарно различны и выполняеться уравнения a+1/b=b+1/c=c+1/a ...

Найти все возможные комбинации из диапазона
Здравствуйте! Нужно найти все перестановки от 0000000 до 9999999. По началу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru