所以在我的学校里,我们有一天每个人都参加不同的活动。每个项目可以有大约 10 个成员。全天分为 2 或 3 个不同的块,其中分配给活动的学生会发生变化。(因此,在块 1 中,学生 x 参加活动 a,在第二块中参加活动 d)。在这一天开始之前,我们列出了每个学生可以告诉我们他想要参加的 3(或 4)项最喜欢的活动(他只参加其中的两项,这些活动也是从“最喜欢”到最不喜欢的顺序)参加。现在我们的工作是以我们在学生中总体满意度最高的方式分配这些学生(所以每个人都或多或少地得到了他/她选择的活动)。解决这个问题的好算法是什么?(我' m 非常熟悉编程(尤其是 java),
一个可选功能是,如果有人无法参与他/她的项目,他们将参与类似的活动(这听起来有点性别歧视,例如,您可以评价此活动的“女性”/“男性”程度并根据这个量表选择类似的活动)
我希望这个问题适合这个平台,如果它完全偏离主题,我很乐意告诉我一个更合适的堆栈。
期待您的建议,约翰