试图找出以下问题:
给定N个正整数的集合S,任务是将它们划分为K个子集,使得每个K个子集中的元素值之和相等。
我希望使用一组不超过10个整数的值,值不大于10且小于5个子集。 所有整数都需要分布,并且只接受完美的解决方案(意味着所有子集都相等,没有近似值)。 我希望使用回溯递归地解决它。我在网上找到的大多数资源都使用了我不理解的其他方法,使用了位掩码或其他方法,或仅用于两个子集而不是K个子集。
我的第一个想法是
不幸的是,我真的在努力解决这个问题,尤其是在实施回溯并重新尝试新组合时。
感谢任何帮助!
答案 0 :(得分:0)
给定集合:具有N个元素的S具有2 ^ N个子集。 (在此详细解释:https://www.mathsisfun.com/activity/subsets.html)分区是将集合的元素分组为非空子集,这样每个元素都包含在一个且只有一个子集中。 n元素集的partitions总数是贝尔数Bn。
可以按如下方式实现此问题的解决方案:
1)创建集合S的所有可能partitions,称为P(S)。
2)循环P(S)并滤除每个子集中元素值的总和不匹配。