这应该是一个很简单的问题,但我没有适当的算法培训,发现自己试图解决这个问题。算法计算所有可能的子集
我需要计算可能的组合以通过将有限的一组较小数字加在一起来达到数字。
想象一下,我们正在玩乐高,我有一个12单位长的砖,我需要列出我可以用较短的砖做出的替代品。对于这个例子,我们可以说可用的砖是2,4,6和12个单位长。
什么可能是一个很好的方法来建立一个算法,可以计算取代?我一次可以使用多少块砖,没有限制,所以它可以是6x2以及1x12,重要的是我需要列出全部的选项。
因此,输入是目标长度(在本例中为12)和可用砖块(数组的数组(任意长度),在本例中为[2,4,6,12])。
我的做法是先从低数字开始,然后将其加起来,直到达到目标,然后再下一个最低等等。但这样我错过了多个数字的组合,当我试图将它分解时,它变得非常混乱。
有什么不对这个问题,它值得向下票呢? – yizzlez
也许类似于http://stackoverflow.com/questions/3420937/algorithm-to-find-which-number-in-a-list-sum-up-to-a-certain-number – Bharat
@awesomeyi我只能猜测,但是...... OP给出的方法几乎正是你需要做的 - 没有代码或伪代码,我们只能猜测OP出错的地方......更不用说有很多列表了 - 全部这里有一些问题。 – Dukeling