Mark mora em um pequeno país povoado por pessoas que tendem a pensar demais. Um dia, o rei do país decide redesenhar a moeda do país para tornar as trocas mais eficientes. O rei quer minimizar o número esperado de moedas necessárias para pagar exatamente qualquer quantia até (mas não incluindo) a quantia da menor nota de papel.
Suponha que a menor unidade de moeda seja a moeda. A menor nota de papel no reino vale a penaMoedas. O rei decide que não deve haver mais do quediferentes denominações de moedas em circulação. O problema, então, é encontrar um-conjunto de números inteiros de o que minimiza sujeito a .
Por exemplo, considere o dólar padrão e suas denominações de moedas de . Aqui, a menor conta de papel vale 100 da menor moeda. Leva 4 moedas para fazer 46 centavos usando esta moeda; temos. No entanto, se tivéssemos denominações de moedas de, seriam necessárias apenas 3 moedas: . Qual desses conjuntos de denominações minimiza o número médio de moedas para fazer qualquer soma até 99 centavos?
Mais geralmente, dado e , como alguém pode determinar algoritmicamente o conjunto ideal? Claramente, pode-se enumerar todos os-subsets e calcule o número médio de moedas necessárias para fazer somas de 1 a , acompanhando o melhor ao longo do caminho. Como existem cerca de -subsets (nem todos viáveis, mas ainda assim), isso não seria muito eficiente. Você pode fazer melhor que isso?