我有一組N
數字,每個數字都附加了一些成本,問題是選擇所有可能的數字集合作爲列表,使得它們的產品小於某個數字M
,按照到成本的總和。用於乘法的揹包算法
如: - 該組數字是
(number, costOfThatNumber) : {(90, 10) , (80, 20), (60, 40), (40, 60), (15, 85)},
和產品必須小於,Prod <= 1000
,
可能的解決方案是: -
[Solution 1 :- {(15, 85), (40, 60)} :- Product = 600 (which is less than, 1000), cost = 85 + 60 = 145]
[Solution 2 :- {(15, 85), (80, 20)} :- Product = 900 and cost = 105]
所以名單而成, {Solution2, Solution1}
。
PS: -
- 這是不是一個功課問題,這是在採訪中問道。我被問到只有算法,我只能說,它看起來有點類似於揹包問題,但乘法。
- 請原諒,如果我無法正確解釋問題。
如果不是最佳解決方案,即使有人給我一個蠻力算法,我也會感激,我甚至可以找到一種方法來選擇所有可能的子集。 – user1045047
你的例子錯了嗎? 15 * 80不是900 ...應該不是(15,85),(60,40)? – svinja