我应该使用什么算法?

时间:2015-07-15 13:26:20

标签: algorithm

我对复杂的算法相当新(直到现在做简单的程序),我正在尝试开发一个用户可以输入所需预算的程序,程序会搜索用户可以使用的最佳产品。从每个类别购买。 例如:

产品:
衬衫:
shirtA - $ 20
shirtB - $ 15
shirtC - $ 10
裤子:
裤子A - 30美元 裤子B - 25美元 裤子C - $ 20
鞋:
shoesA - $ 20
shoesB - $ 15
shoesC - $ 10

用户输入(预算):60美元

输出:
shirtB - $ 15
裤子A - 30美元 shoesB - $ 15
总计:60美元

......或类似的东西。我应该研究什么样的算法?我发现这很难,因为我不知道从哪里开始理解要使用的算法。看,这是为了上课,我们的教授希望我们指出我们使用的算法类型。我想我实际上可以完成这个,如果我只是暴力试验和错误这件事,但后来我不知道我用了什么算法。无论如何,谢谢你们。

1 个答案:

答案 0 :(得分:3)

问题是Knapsack problem的变体;而不是选择是否要将项目包括在解决方案中,必须选择从每个类别中取出哪个项目。虽然维基百科文章中没有明确说明,但通过修改基本公式的Dynamic programming,可以在recurrence relation绑定的假多项式运行时内解决问题中的公式。