您走进一家商店,选择几种产品,然后前往柜台支付账单。总额是一些金额(A
)。你到达你的钱包,钱包或口袋里,并放下一些现金(P
),其中P
> = A
,收银员给你改变。确定给定价格的“通常”现金支付金额的算法
给定一套正在流通的硬币和账单,P
最可能的值是什么?
一些例子,假定可用的纸币是$ 5,$ 10,$ 20 $ 50和$ 100,并且可用的硬币是图5c,10c和25c的:
A
= $ 151.24 P[1]
= $ 160(8×$ 20)或($ 100 + 3×$ 20)P[2]
= $ 155($ 100 + $ 50 + $ 5)
A
= $ 22.65 P[1]
= $ 25($ 20±$ 5)P[2]
= $ 30($ 600 + $ 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