将n个工作分配给m个人n> m的算法

时间:2018-12-23 14:06:52

标签: algorithm

我正在做一个项目,它是试卷生成器,在我的系统中,很少有贡献者和验证者作为参与者。贡献者向我的系统贡献问题,验证者将对其进行验证。因此,有没有什么特定的算法可以帮助我将问题平均分配给验证者,并且没有与问题相关的成本。

1 个答案:

答案 0 :(得分:0)

鉴于您创建了任务,然后开始处理它们,我想简单的循环就足够了。

如果您的问题上确实有标签,请先对其进行排序。第二步将运行直到队列为空,然后一次将每个问题分配给验证程序。

以下是算法基础知识:

  1. 考虑A到n的工作蜂群和B到m的工作蜂群
  2. 对数组A进行排序,例如所有困难的问题都将在开头。
  3. 对于(0,n)中的i:将工作A [i]分配给人B [i mod m]。

采用这种算法将确保每个人都没有一个人比另一个人拥有更多的工作,并且可以确保他们在每个问题级别上均等地分布。

如果您还可以根据他们验证问题的能力来标记他们(我的意思是,人A[i]可以更快地验证他们的问题A[j],那么他们还可以从最快的角度开始对人数组进行排序人员-这将导致人员i比人员j有1个问题,那么可以保证他在验证过程中也更快,并且他们的总时间可以相等。

希望有帮助!