Учитывая массив элементов, каждый из которых имеет value
и cost
, Какой лучший алгоритм определяет элементы, необходимые для достижения минимального значения при минимальной стоимости? например:Алгоритм упаковки ... вид
Item: Value -> Cost
-------------------
A 20 -> 11
B 7 -> 5
C 1 -> 2
MinValue = 30
naive solution: A + B + C + C + C. Value: 30, Cost 22
best option: A + B + B. Value: 34, Cost 21
Обратите внимание, что общая стоимость: соотношение затрат в конце концов, это не имеет значения (A + A
даст вам лучшее соотношение цены и качества, но A + B + B
является более дешевым вариантом, который попадает минимальное значение).
Ваше динамическое программирующее решение приятно, но оно, по-видимому, подразумевает: 1) что каждый элемент можно взять более одного раза; 2), что каждое значение v может быть достигнуто точно, что в общем случае не так ... Я что-то упустил? – 2008-11-27 02:05:21
То, что каждый элемент может быть принято более одного раза, неявна в примерах в вопросе :-) И хотя не все значения могут быть достигнуты точно, если значение v может быть достигнуто точно, тогда оно может быть достигнуто с использованием значения v [i] для некоторого пункта i. [В противном случае, наилучшим [v] является ∞ по определению: пустой min is ∞.] – ShreevatsaR 2008-11-27 02:12:35
«То, что каждый элемент может быть принято более одного раза, неявна в примерах в вопросе». Вы правы, сэр! : D Я чувствую себя обезьяной Шекспира, так как другие на S.O. положи это. Лучше ложитесь спать ... – 2008-11-27 02:13:54