首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何有效地使学生与他们喜欢的部分相匹配?

如何有效地使学生与他们喜欢的部分相匹配?
EN

Stack Overflow用户
提问于 2013-08-12 07:41:22
回答 2查看 546关注 0票数 1

假设你有5节课: A,B,C,D,E。每一节课在不同的时间相遇,因此注册该课程的学生将优先选择他们将选哪一节(他们只能选一节)。当学生注册该课程时,他们会按优先顺序列出他们希望参加的三个部分。

每节都有n名学生。让我们简单地说,正好有5个学生注册了这门课程。

所以,问题是:你如何有效地使学生与他们喜欢的部分相匹配?

我见过一些类似匹配场景的问题,但都不太适合,恐怕我对算法还不太了解。顺便说一句,这是一个真正的问题,我知道这个部门需要几天的时间才能手工完成。

EN

回答 2

Stack Overflow用户

发布于 2013-08-12 08:29:51

也许你可以把它们随机分成几个部分。接下来,您选择随机对的学生,并考虑是否交换它们会改善分布(这会增加与他们的偏好的匹配吗?)您可以迭代,直到X迭代没有改进的可能。这显然是一种非常幼稚的方法,但是如果您的样本很小,它可能会很快收敛。您不能保证您有最佳的解决方案,但因此,您将需要一个蛮力的方法,这可能是不可能的。

票数 0
EN

Stack Overflow用户

发布于 2013-08-12 09:20:13

是否有一个评分系统,如果学生1在A节,分数是20?(另一方面,如果学生2在A节,分数是15?

我的问题是,如果A部分只剩下一个名额,而学生1和2都最喜欢A部分,那么谁先注册就能得到这个位置。而不是谁最适合(更高的分数)。

如果没有得分,你可以循环通过学生,并将他们放在他们喜欢的部分。如果第一个人已经满了,试试他们的第二个偏好,然后再试试第二个。如果学生喜欢的三个部分都填满了,就把它们登记到一个没有填写的部分。

(如果有评分的话,情况就不一样了,因为您必须为每个部分提供一个优先级队列,并将其最大化。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18181753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档