def roundRobin(people):
count = len(people)
even = 1-(count&1)
poly = people[even:]
for _ in range(count-even):
rooms = [(people[0],poly[0])]*even
rooms += [(poly[i],poly[count-i-even]) for i in range(1,(count+1)//2)]
yield rooms
poly = poly[1:]+poly[:1]
这里有一个算法来制定这种计划:https://nrich.maths.org/1443
下面是Python算法的一个示例(适用于偶数和奇数人):
偶数人(6)
单数(7)
26人
如果您只有10个会话,您可以过滤掉该函数的部分输出,并只获取所需的会话数:
相关问题 更多 >
编程相关推荐