If you must pay an amount in coins, the "intuitive" algorithm is: pay as much as possible with the largest denomination coin, and then go on to pay the rest with the other coins. For example, if there are 25, 5 and 1 cent coins, to pay someone 32 cents, you'd first give him a 25 cents coin, then one 5 cent coin, and finally two 1 cent coins.)
However, this doesn't always end paying with as few coins as possible: if we had 25, 10 and 1 cent coins, paying 32 cents with the "intuitive" algorithm would use 8 coins, while three 10 cent coins and two 1 cent coins would be better.
We can call a set "intuitive", if the "intuitive algorithm" always pays out any amount with as few coins as possible.
The problem: give an algorithm that allows you to decide that {25,5,1} is an "intuitive" set, while {25,10,1} isn't.
A quick thought I haven't had time to test yet:
Maybe something like: if you plot out the value of the coins as y-coordinates, (with the x-coordinates being 1, 2, 3, ..., n) the the resulting graph would not be higher than a graph of y=f(x), where f(x) is chosen to allow (1,1) and the largest coin to fit on the curve. Probably an exponential function.
eg y=5^(x-1) for {25,5,1} where x is 1,2,3
|
Posted by Larry
on 2005-03-30 12:49:24 |