我正在寻找一种算法来解决以下问题(我会用一个例子来解释):
假设我有 10.000 美元的可用金额,并且可以使用我的金额支付以下费用:
成本 1: 1.000 $
成本 2: 3.000 $
成本 3: 4.000 $
成本 4: 5.000 $
费用不能部分支付,因此您要么支付全部费用,要么根本不支付。我正在寻找的是一种算法,它可以帮助我找到不会超过可用金额的成本组合,但另一方面使用大部分或全部可用金额。
在我的示例中,它将是:成本 1 + 成本 3 + 成本 4。
我还想添加一个参数,该参数确定可以最大程度地资助多少成本。如果我在我的示例中说只能支付两个成本,则将返回成本 3 和成本 4。
我的方法是检查所有可用的组合,将它们相加并选择最能使用可用数量的组合。但是,我想知道是否有最简单的方法可以找到最佳组合。