2012-07-11 4 views
1

Мне дано количество сказать $ 50. Мне даны некоторые деноминации: $ 1, $ 2, $ 5 и т. Д. И количество этих наименований, например 1, 5,6, что означает 1 монету/банкноту в размере 1, 5 монет/банкнот в размере 2 и 6 монет/банкнот в размере 5 долларов США. Мне нужно найти количество способов, которыми эти монеты можно использовать для формирования этой суммы 50 долларов США. Я пытаюсь найти эффективный алгоритм для решения этого в максимально сжатые сроки. Обратите внимание, что сумма не будет превышать 60 долларов США.Какой хороший алгоритм для решения этой алгоритмической головоломки?

Может кто-нибудь спросит, какой алгоритм я могу использовать для решения этой проблемы? До сих пор я написал рекурсивное решение этой проблемы, но для моей цели это слишком медленно. Я отправлю его здесь в ближайшее время.

+0

Похоже, вы либо размещение домашних заданий или проблем здесь ... Если смотреть на другое место, как код игры в гольф (Http: //codegolf.stackexchange. com). Если ваша рекурация медленная, подумайте о «кэшированной рекурсии», которая будет хорошо работать в вашем случае (и имейте в виду, что вы можете сортировать сначала самые высокие счета. – Bruce

+0

Посмотрите на проблему с рюкзаком. – RedX

+0

@RedX: Да Я знаю проблему с рюкзаком но это для меньшего или равного веса/суммы. –

ответ

0

Я согласен с тем, что это не место для домашних заданий, но все же ... Извините, что он не ожидает решения, он только просит направление. давайте не будем держать вопросы открытыми unecessarily

Посмотрите Integer factorization

+0

. Факторизация не особенно полезна. Разбиение может быть лучше. – huon

+0

Ну, это не домашняя работа/вызов. Ищите эту проблему в любом онлайн-соревновании по онлайн-кодированию. Если вы ее найдете. . В любом случае у меня все еще есть летние каникулы, так что не вопрос, это домашнее задание –

+0

@friendzid: выше всего t был для вас –