making change coin changing
play

Making Change Coin Changing Goal. Given currency in integer - PowerPoint PPT Presentation

Making Change Coin Changing Goal. Given currency in integer denominations: {100, 25, 10, 5, 1} devise a method to pay in integer r amount to customer using the fe fewest t number of coins. s. Example: 34. Cashier's algorithm. At each


  1. Making Change

  2. Coin Changing Goal. Given currency in integer denominations: {100, 25, 10, 5, 1} devise a method to pay in integer r amount to customer using the fe fewest t number of coins. s. Example: 34¢. Cashier's algorithm. At each iteration, add coin of the largest value that does not take us past the amount to be paid. Example: $2.89 = 289¢. 2

  3. Coin-Changing: Greedy Algorithm Cashier's algorithm. Use the maximal number of the largest denomination x – amount to be changed Sort coins denominations by value: c 1 < c 2 < … < c n . S ¬ f co coin ins select cted while (x > 0) { let k be largest integer such that c k £ x if (k = 0) return "no solution found" x ¬ x - c k S ¬ S È {k} } return S Does this algorithm always work? 3

  4. Coin-Changing: Greedy doesn’t always work Greedy algorithm works for US coins Proof: number theory optimally with coin set Greedy fails changing 30 30 op {2 {25, , 10, , 1} Greedy fails changing 30 30 at at al all with coin set {25, {2 , 10} 4

  5. Different problem: number of ways to pay Given a coin set c = {c 0 , c 1 , ..., c d-1 } and an amount M, how many different ways can M be paid? Recursive solution: is this a take / don’t take type of problem? e.g., for eg 56 cents I can use 0, 1, or 2 quarters One possi ssible (not the only) so solution Ba Base: if d == 0, how many ways? (is there always a way ?) St Step: if d>0 at least how many c d coins can be used and which problem then remains to be solved? ... at most how many c d coins can be used and which problem then remains to be solved? Now turn Recursive into Dynamic Programming 5

  6. Making Change Recursive 29 d=3: Quarters 0 1 29 4 d=2: Dimes 2 1 0 29 19 9 . . . . . . d=1: Nickles 3 2 1 0 19 9 14 4 d=0: Cents

  7. Compare it to Subset Sum Dynamic Programming Go through the state space bottom-up: i=1 to n ■ select coin type i, – first 1 coin type, then 2, ......, all coin types – what does the first column look like? ■ use solutions of smaller sub-problems to efficiently compute solutions of larger ones – in sss / knapsack there are 2 sub-problems – in coins there are how many? S o ... S k 1 2 3 … i-1 i coins considered 7

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend