| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [C++] формирование набора предметов |
| Автор: Veina 12.12.2009, 16:06 |
| В текстовом файле записаны названия некоторых предметов, а так же их веса и ценности. При заданном ограничении на суммарный вес предметов, сформировать набор, имеющий наибольшую совокупную ценность. Например: задается: мишка_0,3кг_200р. молоко_0,1кг_20р. диван_12кг_5000р. стул_2кг_2000р. кресло_9кг_4000р. парта_7кг_1500р. монитор_20кг_25000р. холодильник_20кг_25000кг. телевизор_17кг_13000р. задается вес не более 50 кг, т. е. сформировать набор не более, чем на 50 кг. из предметов наибольшей ценности. результат должен быть таким: холодильник_20кг_25000р. монитор_4кг_15000р. телевизор_17кг_13000р. итог: 41кг_53000р. помогите, пожалуйста. очень нужна эта задача. |
| Автор: Shadowlord 12.12.2009, 16:26 | ||
| динамическое программирования а именно задачи "о ранце". Формулировка По данному набору из n предметов стоимостями v1,v2,...,vn и весами w1,w2,...,wn найти поднабор (с учетом того, что можно брать один предмет несколько раз) такой, что его стоимость будет максимальна среди всех поднаборов веса не более W. [править] Решение Обозначим через Kw максимальную стоимость, которую мы можем набрать при весе не более w. Получаем следующее рекуррентное соотношение: * K0 = 0 (при весе не более нуля максимальная стоимость 0) * Kw = max { K_{w-w_i} + v_i | w_i <= w , 1 <= i <= n, где n - размер набора } Использовать рекурсию напрямую нельзя, т.к. появляется большое число перекрывающихся задач и время выполнения может стать экспоненциальным. При использовании динамического программирования(запоминания) мы получаем сложность O(n * W) - псевдо-полиномиальный алгоритм.
http://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BE_%D1%80%D0%B0%D0%BD%D1%86%D0%B5 |
| Автор: Veina 12.12.2009, 21:52 |
| я это уже видела. но я программирования не знаю. и не смогу разобраться. я просто прошу помочь мне. вам же не тяжело. ну помогите, хоть кто-нибудь, очень прошу. пожалуйста.... нужно еще все с файлом связать. помогите. |
| Автор: bsa 13.12.2009, 20:17 |
| Для домашних заданий, курсовых, существует "Центр Помощи". Тема перенесена! |
| Автор: Veina 14.12.2009, 12:42 |
| и еще проблема: выдает ошибку "не удается найти указанный файл" 1>------ Build started: Project: zadacha3, Configuration: Debug Win32 ------ 1>Compiling... 1>zadacha3.cpp 1>c:\documents and settings\марина\мои документы\visual studio 2008\projects\zadacha3\zadacha3.cpp (1) : fatal error C1083: Cannot open include file: 'vector.h': No such file or directory 1>Build log was saved at "file://c:\Documents and Settings\Марина\Мои документы\Visual Studio 2008\Projects\zadacha3\Debug\BuildL og.htm" 1>zadacha3 - 1 error(s), 0 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== только пишет такую нехорошую штуку....((( что делать? помогите разобраться пожалуйста |