好吧,我是巴西大学评估委员会的成员。我们必须审查打算进入硕士和博士课程的学生的申请。大约有 70-80 份申请和大约 10 名教授,每个学生必须由两名教授进行评估,以免产生有偏见的仅针对人的结果。
但是,由于评估这些申请是一个漫长的过程,我们不想要求每个人都评估所有 80 份左右的申请,从而让所有教授负担过重。
因此,我正在考虑一种算法来做到这一点。为每个申请指派两名独立教授,同时保证每个教授都有大约相同数量的评估需要进行。
我确信我在 Stack Exchange 网站的某个地方看到过这个,但我一生都无法找出要使用的正确关键字,以便它会在搜索中弹出。
from random import shuffle
apps = [
'app 1',
# ...
'app N',
]
profs = [
'prof 1',
# ...
'prof N'
]
shuffle(apps)
profs_comb = [(profs[i], profs[j]) for i in range(len(profs) - 1) for j in range(i + 1, len(profs))]
[print('app: {}, profs: {}'.format(app, profs_comb[len(profs_comb) * i // len(apps)])) for i, app in enumerate(apps)]