3路/4路循环赛调度算法
3-way / 4-way round-robin tournament scheduling algorithm
我想要 create/implement 一个锦标赛调度算法,它能够处理每场比赛超过 2 名参与者。
这个问题似乎对 2 个参与者来说是众所周知的。例如,请参见此处:Round Robin Algorithm Implementation Java
6 支球队(A、B、C、D、E、F)的对决示例:
- (ABC)(DEF)
- (ABD)(CEF)
- (ABE)(CDF)
- (ABF)(CDE)
- (ACD)(BEF)
- (ACE)(BDF)
- (ACF)(BDE)
- (ADE)(BEF)
- (ADF)(BCE)
- (AEF)(BCD)
如果队伍数量为奇数(即 A、B、C、D、E),我希望每轮进行 3 路和 2 路比赛:(ABC)(DE)
一旦解决了 3 路问题,我想对 4 路游戏做同样的事情。
我无法创建这样的算法,也无法在互联网上找到类似的解决方案。
有人能给我指出正确的方向吗?
要从 N 项中选择 K 项,您需要 combinations。
请注意 C(6,3)=20
但您修复了一项 (A) 并且确实有 C(5,2)=10
个变体
组合生成的实现有很多种——最简单的是recursive, more effective is lexicographic ordered generation -simple C code
我想要 create/implement 一个锦标赛调度算法,它能够处理每场比赛超过 2 名参与者。
这个问题似乎对 2 个参与者来说是众所周知的。例如,请参见此处:Round Robin Algorithm Implementation Java
6 支球队(A、B、C、D、E、F)的对决示例:
- (ABC)(DEF)
- (ABD)(CEF)
- (ABE)(CDF)
- (ABF)(CDE)
- (ACD)(BEF)
- (ACE)(BDF)
- (ACF)(BDE)
- (ADE)(BEF)
- (ADF)(BCE)
- (AEF)(BCD)
如果队伍数量为奇数(即 A、B、C、D、E),我希望每轮进行 3 路和 2 路比赛:(ABC)(DE)
一旦解决了 3 路问题,我想对 4 路游戏做同样的事情。
我无法创建这样的算法,也无法在互联网上找到类似的解决方案。
有人能给我指出正确的方向吗?
要从 N 项中选择 K 项,您需要 combinations。
请注意 C(6,3)=20
但您修复了一项 (A) 并且确实有 C(5,2)=10
个变体
组合生成的实现有很多种——最简单的是recursive, more effective is lexicographic ordered generation -simple C code