gpt4 book ai didi

python - 从姓名列表中生成学生对,每周新对

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:36:13 25 4
gpt4 key购买 nike

我有一个学生名单,我想每周将每个学生与另一个学生配对。显然,学生每周只能参加一对,学生不应该与以前合作过的人一起工作。我可以用我的学生姓名列表生成每对可能的元组列表,但我正在努力获取这些对并为每周生成对列表。

最佳答案

您要的是 scheduling algorithm for a round robin tournament .这是在 Python 中实现它的一种方法:

def round_robin(n):
if n % 2:
raise ValueError("Can't pair an odd number of students")
half = n // 2
students = list(range(1, n + 1))
for round in range(n - 1):
students.append(students.pop(1))
pairs = list(zip(students[:half], students[:half-1:-1]))
print(pairs)

这是实际操作:

>>> round_robin(8)
[(1, 2), (3, 8), (4, 7), (5, 6)]
[(1, 3), (4, 2), (5, 8), (6, 7)]
[(1, 4), (5, 3), (6, 2), (7, 8)]
[(1, 5), (6, 4), (7, 3), (8, 2)]
[(1, 6), (7, 5), (8, 4), (2, 3)]
[(1, 7), (8, 6), (2, 5), (3, 4)]
[(1, 8), (2, 7), (3, 6), (4, 5)]

关于python - 从姓名列表中生成学生对,每周新对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52917433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com