我試圖使用動態編程來解決問題和問題產生如下:動態規劃:硬幣的最小號碼進行變更爲65美分
鑑於硬幣(便士,鎳,角錢的無限量供應,二分之一,四分之一)與 值(1,5,10,20,25),請找到最小數量的硬幣進行65美分的更改。 使用哪些硬幣(以及每個硬幣的數量)?舉例說明使用動態編程算法所需的表格以及如何獲得使用的硬幣。
注意:我不希望任何人爲我說明整個表格,但是我對如何填寫表格解決此問題感到困惑。
我知道我的表看起來有點像這樣:
5 10 15 20 25 30 35 40 45 50 55 60 65
1
5
10
20
25
(我省略了1分的,因爲我知道這是不是最好的解決方案) 我最初的想法是,該表將填寫有點像這樣:
5 10 15 20 25 30 35 40 45 50 55 60 65
1
5 1 2 4 5 5 6 7 8 9 10 11 12 13
10 0 1
20
25
當我不得不走得更遠時,我陷在這裏。我不認爲我完全理解動態編程如何對這個問題起作用。我一直在閱讀我的書,並在網上閱讀,但我仍然有點困惑。
編輯:
多虧了一個答案這是我摸索出瞭解決方案:
5 10 15 20 25 30 35 40 45 50 55 60 65
1
5 1 1 1 1
10 1 1 1 1
20 1 2 1 2
25 1 1 1 1 2 2 2 1
請問這個問題對你有幫助嗎? http://stackoverflow.com/questions/8031816/dynamic-programming-making-change – 2014-10-29 21:48:31
你可能想重新考慮你接受的解決方案。你選擇的那個給出了錯誤的答案。 – 2014-10-29 22:39:41
我刪除了錯誤的評論,但我的回答沒有包含任何錯誤,仍然回答了問題。 – 2014-10-29 22:48:07