avva: (Default)
[personal profile] avva
По внутренней рассылке прислали задачку. Очень может быть, что нетривиальную; решения я не знаю. Звучит красиво... думаю.

Пусть у нас есть какой-то набор достоинств монет, так, что любую сумму можно собрать из монет данного набора (количество индивидуальных монет каждого достоинства неограничено). Для любой суммы, чтобы собрать ее посредством данного набора, можно воспользоваться "жадным" алгоритмом: каждый раз брать наибольшую возможную монету, меньшую оставшейся суммы, вычитать ее, и продолжать так, пока ничего не останется.

Есть наборы, для которых "жадный" алгоритм всегда приведет к наименьшему возможному количеству монет (скажем, набор из 10, 5, 3 и 1 - такой). А есть наборы, для которых иногда можно воспользоваться меньшим количеством монет, чем дает "жадный" алгоритм (например, набор достоинств в 25, 20, 10, 5 и 1 такой: сумму в 40 денежных единиц можно в нем выразить двумя монетами по 20, а "жадный" алгоритм дает три монеты: 25, 10 и 5).

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

P.S. Если вы просто знаете правильное решение (а не придумали его сами), не надо им делиться пока, хочу подумать сам.

Date: 2007-07-08 12:47 am (UTC)
From: [identity profile] knop.livejournal.com
Ну так как - делиться информацией или подумаете пока самостоятельно?
Вроде бы то, что я знаю, вообще не требует перебора.
Там рассматриваются примерно C_n^2 конкретных чисел, для каждого из которых сравниваются две величины - длина жадного представления и длина еще одного конкретного представления. Если для каждого из этих чисел жадное разложение _не длиннее альтернативного_, то жадный алгоритм будет давать кратчайшее представление для любой суммы.

Обратная теорема тоже верна.

Date: 2007-07-08 12:53 am (UTC)
From: [identity profile] avva.livejournal.com
Интересно. Я пытался думать в этом направлении, но ничего хорошего не додумал. Если Вам не очень трудно, напишите Ваше решение завтра где-то в то же время? Чтобы у тех, кто хочет сам, было время подумать, включая и меня - а я как раз буду в самолете к тому времени, и над Атлантическим океаном смогу еще немного помедитировать, если до тех пор не придумаю ничего.

June 2025

S M T W T F S
123 4 5 6 7
8 910 11 12 13 14
15 16 17 18192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 18th, 2025 03:02 am
Powered by Dreamwidth Studios