Вы заходите в магазин, выбираете несколько продуктов, затем отправляетесь на счетчик, чтобы оплатить счет. Общая сумма составляет (A
). Вы попадаете в свой кошелек, кошелек или карман и кладете наличные (P
), где P
> = A
, и кассир дает вам изменения.Алгоритм определения «обычных» сумм денежных средств по данной цене
Учитывая набор монет и векселей, находящихся в обращении, каковы наиболее вероятные значения для P
?
Некоторые примеры, предполагая, что имеющиеся счета за $ 5, $ 10, $ 20, $ 50 и $ 100, и доступные монеты являются 5c, 10c и 25c:
A
= $ 151,24 P[1]
= $ 160 (8x $ 20) или (100 $ + 3x $ 20) P[2]
= $ 155 ($ 100 + $ 50 + $ 5)
A
= $ 22,65 P[1]
= $ 25 ($ 20 + $ 5) P[2]
= $ 30 ($ 20 + $ 10) P[3]
= $ 40 ($ 20 + $ 20)
A
= $ 0,95 P[1]
= $ 1 (4 х 25с) P[2]
= $ 5
Многие из этих чисел, кажется интуитивным, но у меня есть ощущение, что алгоритм трудно придавить.
Я сделал небольшой проект вроде этого несколько лет назад. Но я не уверен, что вы имеете в виду мои «обычные». В моем проекте мы хотели узнать минимальное количество счетов и монет, необходимых для выплат группе игроков в покер, основанных на ставках и количестве игроков. – benjismith 2008-11-19 16:12:40
Я согласен, что «обычный» будет меняться ... когда я ношу деньги, я никогда не ношу ничего большего, чем 20. Я знаю людей, которые несут ничего меньшего, чем 50 (чтобы они не покупали тривиальные вещи). Если вы ищете сценарий с наименьшими счетами, стандартный жадный алгоритм сделает это в американской валюте как минимум – warren 2008-11-19 16:25:29
Да, это «обычное» требование будет затруднять. – 2008-11-19 17:24:10