所以我有10个数字。让我们假设每个数字代表一个人的技能。如果我要创建两个5人的团队,我将如何创建两个团队,使他们的团队总和的差异最小。
发布于 2013-06-30 22:45:40
对于10个数字,最简单的方法是遍历所有组合并计算差值。
发布于 2013-06-30 22:58:19
这类似于Knapsack problem:您尝试将个人放在其中一个团队中,以便该团队的和是不大于总和的一半的最大值。如果团队规模不受限制,情况也是一样的。
发布于 2013-07-01 05:30:34
生成5个元素的所有组合。你将有这5个人在一个团队中,其余的在另一个团队中。比较所有结果并选择差异最小的结果。你可以用5个for循环来创建所有这些组合。
https://stackoverflow.com/questions/17391522
复制相似问题