![]() |
Задача о рюкзаке, ПОМОГИТЕ!!!
Нужна программа (исходник, желательно на си или паскале) решающая задачу о рюкзаке:
X=(1,2,3,...,N), A принадлежит множеству {0, 1}; sum(X[i]*a[i])=s; Найти подпоследовательности размерности K (K<=N), сумма которых была бы равной S. Помогите пожалуйста, а то экзамен завалю!!! |
А подробнее можно? Что за задача о рюкзаке?
|
Andy1
Может попроще расскажешь?. Размерность это сама одна большая задача :) Расскажи детально. |
Вот по-другому:
Алгоритм решает задачу о рюкзаке, которая формулируется так: дан, упорядоченный по неубыванию, массив A вещественных положительных чисел и некоторое Sum, необходимо найти все подпоследовательности массива A, сумма элементов которых равна в точности Sum. В результате работы алгоритма получаем переменную L равную количеству найденых последовательностей. Сами последовательности помещаются в масcив строк Results, каждая строка представляет номера элементов массива A, разделенные запятыми. В нете много ссылок на алгоритмы, а самой проги нет:( Вот ссылка, например: http://alglib.manual.ru/combinatorial/backpack.php Вот ещё кое-что: http://www.isu.ru/~slava/teach/school/comb_ret.htm Просто сам уже не успеваю прогу написать, теории учить ещё до фига! Если чё, я в асе: 86835583 Можно, чтобы она(прога) работала по неоптимальному алгоритму, главное, чтобы работала и была не слишком запутана! |
Andy1
Задача о рюкзаке немного отличается от описанной тобой задачи. Задача о рюкзаке: Есть некоторое количество предметов, которые можно уложить в рюкзак. Для каждого предмета указан коэффициент полезности и его объем. Собрать рюкзак так, чтобы объем предметов не превышал указанный объем рюкзака и суммарная полезность предметов была максимальной. |
За неимением Pascal'я код на VisualBasic'е ...
Код:
Public Sub Main() |
Вложений: 1
Pascal последний раз юзал лет 6-7 назад, поэтому не судите строго ;)
Код:
uses crt; |
А на паскале прога та же написана, что и на vb?
Какую задачу она решает: твою или вмоей формулировке? |
SwiMMeR, а зачем функция возведения в степень? а через exp (экспонента) слабо? :)
Andy1, это в твоей формулировке |
dex0r
А через экспоненту это как? exp(x) = e^x а мне надо 2^x :confused: |
SwiMMeR
Если не ошибаюсь, a^x = e ^ (x * ln(a)) |
ну вы замудрили! Осталось ещё через силу ветра :)
|
Цитата:
Имнсхо, твоя задача NPC. Так что не стесняйся полного перебора, принципиально лучшего алгоритма нет :) |
dmkr
Полный перебор не подходит, т.к. не соответствует условиям задачи ... :) незря ведь там сказано Цитата:
|
Ghost, асболютно точно :)
SwiMMeR, упс... а я не заметил :) |
помогите решить задачу о рюкзаке на Builder желательно с помощью генетического алгоритма, очень нужно!!! если че пишите в аську 631504528
|
помогите,пожалуста
я видела вы тут обсуждали когда-то задачу о рюкзаке....так вот...можете хотя бы натолкнуть на мысль,как решить ее методом отжига.....я вообще понятия не имею,как это сделать...в паскале
|
Часовой пояс GMT +4, время: 04:50. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.