我有很多球员分为好球员和坏球员两类。每个参与者都由一个算术值定义,可能的分组可能是这个:bad playersA 13B 6C 9D 2good playersX 25Y 16Z 17K 10将一个好玩家与一个坏玩家配对会使他变得更糟,其数量等于该坏玩家的价值(因此,如果我将一个价值100的好玩家与一个价值50的坏玩家配对,那么好玩家的价值就会降为50)。我需要将每个好玩家与一个坏玩家配对,但是以这样的方式,可以将结果列表中的好玩家的总和分为具有相同总和的两个大小相等的组。在上面的示例中,配对错误是:A - X 12C - Z 8B - Y 10D - K 8现在,由于他们与不良球员(ABCD)配对,所有好的球员都损失了一些积分,他们的价值已经改变。这些新值不能分成大小相等的两组,以便每组中的值之和相等。如果我有不同的组合,可以说:D - K 8B - Z 11C - X 16A - Y 3 我现在可以将好玩家分为K,Z和X,Y组,它们的值均为19,因此一切保持中立。为了找到可以接受的好人和坏人配对,一个解决方案是使用蛮力并产生所有可能的组合,然后通过尝试将其分成两组相等的值来检查每个组合是否可接受。 。找到第一个可接受的解决方案后,我们将其退回。如何改善此设置并在此设置中直接找到可接受的配对?
添加回答
举报
0/150
提交
取消