Я понимаю, как работает жадный алгоритм для проблемы с изменением монет (выплачивается определенная сумма с минимально возможным количеством монет) - он всегда выбирает монету с наибольшим наименованием, не превышающую оставшуюся сумму, и что он всегда находит правильное решение для конкретных наборов монет.
Но для некоторых наборов монет есть суммы, для которых жадный алгоритм терпит неудачу. Например, для набора {1, 15, 25}
и суммы 30, жадный алгоритм сначала выбирает 25, оставляя остаток из 5, а затем пять 1 с для всего шести монет. Но решение с минимальным количеством монет состоит в том, чтобы выбрать 15 дважды.
Какие условия должен выполнить набор монет, чтобы алчный алгоритм нашел минимальное решение для всех сумм?