Java 将数组划分为具有相同和值的K个子集
试图找出以下问题: 给定一组N个正整数,任务是将它们分成K个子集,使得每个K个子集中的元素值之和相等 我想用一组不超过10个整数的值来做这件事,这些值不超过10,并且小于5个子集。 所有整数都需要分布,并且只接受完美解(意味着所有子集都相等,没有近似值)。 我想使用回溯递归地解决它。我在网上找到的大多数资源都使用了我不了解的其他方法,使用了位掩码之类的,或者只针对两个子集,而不是K个子集 我的第一个想法是Java 将数组划分为具有相同和值的K个子集,java,algorithm,subset,Java,Algorithm,Subset,试图找出以下问题: 给定一组N个正整数,任务是将它们分成K个子集,使得每个K个子集中的元素值之和相等 我想用一组不超过10个整数的值来做这件事,这些值不超过10,并且小于5个子集。 所有整数都需要分布,并且只接受完美解(意味着所有子集都相等,没有近似值)。 我想使用回溯递归地解决它。我在网上找到的大多数资源都使用了我不了解的其他方法,使用了位掩码之类的,或者只针对两个子集,而不是K个子集 我的第一个想法是 按升序对集合排序,检查所有基本情况(例如,不可能均匀分布),计算所有子集必须具有的平均值,
感谢您的帮助 具有N个元素的给定集合:S有2^N个子集。(这里解释得很好:)分区是将集合的元素分组到非空子集中,这样每个元素都包含在一个且仅包含一个子集中。一个n元素集的总数是贝尔数Bn 此问题的解决方案可按如下方式实施: 1) 创建所有可能的集合S,称为p(S)
2) 如果每个子集中的元素值之和不匹配,则在p(S)上循环并过滤掉。对不起,作业解析资源也不匹配。带着你的代码尝试到这里来,我理解其中有一些特殊的问题。对于任何可能阅读本文的人,这里有一个帮助:这是。有2^n个子集,但有K^n个分区到K个组。