如何将N个学生分成n个组,以确保每个学生都与所有学生一起工作?

时间:2018-09-03 17:01:29

标签: excel combinations permutation

我正在寻找指南或算法或其他任何可以使我朝正确方向发展的东西。让我用一个例子解释一下我想要的东西:

假设有40个学生。我应该确保每个学生在整个学年中都与其他学生一起工作。小组每2周更改一次。我可以自由使用任何语言(尽管我希望最终产品在excel中,因为最终用户很熟悉,而且我不必创建任何UI),但我无法考虑其逻辑。小组中的人大多是预先确定的。通常在3-5之间。如果是3,则40/3 = 12组3组和1组4组。现在我们需要对学生进行洗牌,以便说在Pth洗牌中,每个学生应该与该批次中的每个其他学生一起工作。如果无法在P次尝试中实现,则将其最大化。 P主要受限于他们所修读的科目数量,因此无法更改。

到目前为止,我尝试的是类似蛮力的事情。它效率不高,并且需要进行大量尝试来确保每个学生与其他人一起工作,并且下一次迭代是非常可预测的(如果可能,我希望它是伪随机的)。我尝试的逻辑是

1st Pass - Group 1: 1 to 3, 3 to 6, 6 to 9, .. Group P: 37 to 40
2nd Pass - Group 1: 2 to 4,... Group P: 38 to 40, 1
3rd Pass - Group 1: 3 to 5, ... Group P: 39, 40 , 1 2

我们非常感谢您的帮助:)

0 个答案:

没有答案