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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2010, 19:29   #1
serg268
 
Регистрация: 19.09.2010
Сообщений: 7
По умолчанию Рюкзак на Delphi

Мы собираемся в поход, имея рюкзак объема V и неограниченный запас каждого из N различных видов предметов. Каждый предмет i имеет известный объем vi и стоимость mi , i = 1, …, N. В рюкзак можно положить целое число различных предметов. Нужно напи-сать ПС упаковки рюкзака так, чтобы общая стоимость упакованных предметов была наибольшей, а их общий объем не превосходил V. Формой предметов пренебречь.
serg268 вне форума Ответить с цитированием
Старый 19.09.2010, 19:37   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Где-то я уже видел тут программы по расчету упаковок.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.09.2010, 14:42   #3
serg268
 
Регистрация: 19.09.2010
Сообщений: 7
По умолчанию

Народ дело в том что прогу необходимо написать на Delphi , а я с этим языком никогда несталкивался, а времени разбираться нет.... Если у кого есть идеи по коду.... заранее спасибо
serg268 вне форума Ответить с цитированием
Старый 23.09.2010, 14:50   #4
KobolD
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 239
По умолчанию

Я, к сожалению, тоже не знаком с делфи, а решение такое.
Создается масив [n, 1...3]в строках у которого распологаются предметы, в первом столбце - объем, во втором - стоимость.
В третьей столбец вычисляем стоимость единицы объема каждого предмета (второе делим на первое).
Сортируем масив по третьему столбцу, по убыванию. Получается что первый элемент получается самый ценный по соотношению цена/объем.
Начинаем "запихивать вещи в рюкзак" с первого элемента масива по принципу если объем текущей вещи меньше(или равен) чем оставшийся объем рюкзака то запихиваем ее туда, если нет то переходим на след элемент. Тут надо использовать цикл while вместо For т.к. одну вещь можно положить в рюкзак несколько раз.
Чтобы слова не расходились с делом, нужно молчать и ничего не делать.
KobolD вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
На Delphi 7 сделать игру кто хочет стать миллионером в delphi 7 666dart666 Помощь студентам 11 04.11.2010 17:57
Rad Studio 2011 XE: новое в Delphi, C++ Builder, RadPHP и Delphi Prism savva-paladin Софт 18 02.10.2010 20:24
Delphi. Как нарисовать в Delphi два движущиеся шара с определенной скоростью? redred Общие вопросы Delphi 10 11.12.2007 10:43
Как открыть БД, написанную в Delphi если нf другой машине Delphi нет? dagarik БД в Delphi 7 22.10.2007 17:54
не StringGrid1.Cells[1,1]:='Delphi'; а вот так SG1.C[1,1]:='Delphi' Nemesisking Компоненты Delphi 7 08.09.2007 03:27