2013-07-17 6 views
0

Вопрос: видел ли я в сети: Фермер-продажа фермера имеет дыни. Вес каждой дыни, целое число (lbs), различен. Клиент запрашивает ровно m фунтов неразрезанных дынь. Теперь у фермера возникает следующая проблема: если это возможно, чтобы удовлетворить клиента, он должен сделать это, найдя подходящие дыни как можно эффективнее или сообщите клиенту, что выполнить его запрос невозможно.Алгоритм для фермера-продающего фермера

примечание: это не домашнее задание кстати, мне просто нужно руководствоваться.

Это похоже на проблему смены монет (рюкзак) и проблему с подмножеством (обратное отслеживание). Изменение монет: я могу поместить весы в набор w = {5, 8, 3, 2, ....}, затем решить и то же самое для проблемы подмножества.

Так что в принципе я могу использовать любой из этих методов для решения этой проблемы?

+0

Как можно эффективнее? Вы имеете в виду как можно более эффективный алгоритм, или как можно меньше дынь? – Dukeling

+0

Они действительно фокусировались на эффективности алгоритма для выполнения запроса. – Raidenlee

ответ

0

Это целая проблема с рюкзаком, где решения имеют нулевой рационализатор. Существует хорошая стратегия динамического программирования/напоминания, которая поможет вам решить эту проблему. См любой из этих ссылок:

http://www.cs.ship.edu/~tbriggs/dynamic/

https://en.wikipedia.org/wiki/Knapsack_problem

Действительно, проблема подмножества суммы является проблемой 0/1 ранца, где вес равен значение каждого элемента.

+0

Спасибо. Извините за поздний ответ. – Raidenlee

 Смежные вопросы

  • Нет связанных вопросов^_^