3向/ 4向循环巡回赛调度算法

时间:2018-08-01 10:09:39

标签: java algorithm round-robin tournament

我想创建/实施一个比赛调度算法,该算法每个游戏可以处理2个以上的参与者。

这个问题似乎对于2位参与者是众所周知的。例如,请参见此处:Round Robin Algorithm Implementation Java

与6支球队(A,B,C,D,E,F)对决的例子:

  1. (ABC)(DEF)
  2. (ABD)(CEF)
  3. (ABE)(CDF)
  4. (ABF)(CDE)
  5. (ACD)(BEF)
  6. (ACE)(BDF)
  7. (ACF)(BDE)
  8. (ADE)(BEF)
  9. (ADF)(BCE)
  10. (AEF)(BCD)

如果球队数量奇数(即A,B,C,D,E),我希望每局有3局和2局的游戏:(ABC)(DE)

一旦解决了三向游戏问题,我想对四向游戏做同样的事情。

我无法创建这样的算法,也无法在互联网上找到类似的解决方案。

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

要从N个中选择K个项目,您需要combinations

请注意,C(6,3)=20是固定项(A),并且确实有C(5,2)=10变体

组合生成有很多实现-最简单的是recursive,更有效的是lexicographic ordered generation -simple C code