计算由 n 个学生组成的班级为期 w 周的配对的算法
我正在寻找一种算法来计算 n 个班级(学生姓名列表)w 周的配对,这样学生就不会在不同的两周内与同一个学生合作。假设 n 是偶数。
示例:
班级:学生 1,2,3,4
周:3
- 第 1 周的日程安排:(1,2),(3,4)
- 第 2 周的日程安排:(1,3),(2,4)
- 周的日程安排3: (2,3), (1,4)
我认为 w 必须小于或等于 n - 1,因为每个学生最多可以与 n - 1 个其他人合作。但我不知道是否总是有n-1个解。如果有的话,我希望看到以非暴力方式生成这些 n - 1 个解决方案的算法。
这个问题有一个名称以及我应该查看的通用算法吗?
I am searching for an algorithm to calculate pairs from a class of n (a list of student names) for w weeks, so that a student never coöperates with the same student in two different weeks. Assume that n is even.
Example:
class: students 1,2,3,4
weeks: 3
- schedule for week 1: (1,2), (3,4)
- schedule for week 2: (1,3), (2,4)
- schedule for week 3: (2,3), (1,4)
I figured that w has to be smaller than or equal to n - 1 because every student can maximally coöperate with n - 1 others. But I don't know if there are always n - 1 solutions. If there are, I would like to see the algoritm that generates these n - 1 solutions in a none-brute force way.
Is there a name for this problem and a common algorithm I should look at?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
听起来它相当于循环赛。
Sounds like it is equivalent to a round robin tournament.