Algorithm 具有排除因子的组排序程序的算法构造

Algorithm 具有排除因子的组排序程序的算法构造,algorithm,sorting,combinatorics,Algorithm,Sorting,Combinatorics,我正试图制定一个方程/算法来解决这个问题(对于我正在编写的程序): 规则: 要排序的人员p可以从列表中排除n个人员。被排除的人n不能与p属于同一组 名单将包括大约100-150人 一个团队应包含5-7人(理想情况下为6人) 我现在的想法是: 将列表计数除以6,这将得到组的数量 将人们送入小组,直到出现排斥。当这种情况发生时,尝试根据某种评分系统将不匹配的人转移到其他组中,直到形成合适的组 然而,我仍然觉得我需要限制每个人被排除在外的人数 我的问题基本上是,我将如何计算出某个人可以排除多少

我正试图制定一个方程/算法来解决这个问题(对于我正在编写的程序):

规则:

  • 要排序的人员p可以从列表中排除n个人员。被排除的人n不能与p属于同一组

  • 名单将包括大约100-150人

  • 一个团队应包含5-7人(理想情况下为6人)

我现在的想法是:

  • 将列表计数除以6,这将得到组的数量

  • 将人们送入小组,直到出现排斥。当这种情况发生时,尝试根据某种评分系统将不匹配的人转移到其他组中,直到形成合适的组

然而,我仍然觉得我需要限制每个人被排除在外的人数

我的问题基本上是,我将如何计算出某个人可以排除多少人以使这一努力成为可能。考虑到将有大约150人,每个人都有自己的排除名单,这是可能的吗?然而,一些例外情况当然是允许的。想法和想法也很受欢迎


我打算用java编写这个程序。

糟糕的情况:每个人都排斥一个人。一人,不包括所有其他人。我会数一数每个人被排除在外的次数,首先开始在他们周围建立小组(以及有长长的排除名单的人)。谢谢,这确实是一个很好的起点!然而,通过限制每个人可以排除的人数,前两种情况(希望)可以避免。我想知道如何计算出最大的排除列表计数,同时将冲突的概率保持在最低。实际上,@StefanHaustein的第一个场景无法通过限制每个人可以排除的人数来避免。@j_random_hacker true,但是,在我的情况下,这不太可能发生:)!(还有,这就是为什么我把希望放在这里)你可以应用到这个问题上,你可以使最终的团队可能更小。