C#算法根据值确定人员分组

标签 c# grouping

我正在尝试编写一种算法,根据他们的“分数”创建人群。 一个人有两个参数,一个名字和一个分数。 (分数的范围在 -10 到 10 之间,但这真的不相关)我正在寻找创建人数相等的小组(如果可能的话,根据出现的人数),其中小组成员的平均分数是相同(或非常接近)。

例如:

第 1 组(平均得分 = 2) -- John Doe,得分 2 -- Jane Doe,得分 7 -- jack ·布莱克,得分 -3

第 2 组(平均得分 = 2) -- Bobby Flay,得分 4 -- 卡里·佩奇,得分 -3 -- Linus Tarval,得分 5

最佳答案

这闻起来像经典的变体 Partition Problem ,尽管存在一些启发式方法,但它是 NP-Hard。您可以在维基百科页面上找到战利品。可能贪婪的方法适用于您的情况。

您应该尝试通过选择合适的组来放置特定的人来填充您的组,可以从按分数排序开始。

关于C#算法根据值确定人员分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3348509/

相关文章:

c# - 最小起订量和参数匹配

C# 动态关键字——运行时惩罚?

c# - 如何在我的 Controller 中管理可重复的文本?

sql - 将 PostgreSQL 数据分组以在输出中具有不超过 N 个值

php - 根据用户和创建时间对 php 数组项进行分组

javascript - 如何在 BIRT 报告中多次运行一个表

sql - 在 teradata 中按日期对一组记录进行分组

c# - 使用 DeploymentItem 和 WatiN 的 MSTest - 文件未被复制

c# - Microsoft Visual Studio 2013 : Cannot Create a new Asp. 网络项目

Javascript 按特定顺序按多个属性递归分组和数组