我正在寻找下面问题的答案。
给定一组整数(没有重复),以及一个和,找到所有可能的组合,使得集合的元素总和为和。解决方案的顺序不重要(解决方案{2, 2, 3}和{3, 2, 2}是相同的)。
请注意,最终的组合不需要是一个集合,因为它可以包含重复项。
示例: 集合{2,3,5} 和10
结果: {2, 2, 2, 2, 2},{2, 2, 3, 3},{2, 3, 5},{5, 5}
我已经研究了子集和问题和硬币更换问题,但无法使它们适应我的需求。我不太熟悉动态编程,所以这可能是可行的,但是我无法弄清楚。
由于我要处理的元素集合相当大(约为50个),预先计算所有集合不是一个选项,因为这将需要很长时间。如果可能的话,从子集和表中提取不同解决方案的方法将更可取。
任何建议、提示或示例代码都将不胜感激!
给定一组整数(没有重复),以及一个和,找到所有可能的组合,使得集合的元素总和为和。解决方案的顺序不重要(解决方案{2, 2, 3}和{3, 2, 2}是相同的)。
请注意,最终的组合不需要是一个集合,因为它可以包含重复项。
示例: 集合{2,3,5} 和10
结果: {2, 2, 2, 2, 2},{2, 2, 3, 3},{2, 3, 5},{5, 5}
我已经研究了子集和问题和硬币更换问题,但无法使它们适应我的需求。我不太熟悉动态编程,所以这可能是可行的,但是我无法弄清楚。
由于我要处理的元素集合相当大(约为50个),预先计算所有集合不是一个选项,因为这将需要很长时间。如果可能的话,从子集和表中提取不同解决方案的方法将更可取。
任何建议、提示或示例代码都将不胜感激!