2

我想创建/实现一个能够处理每场比赛超过 2 名参与者的锦标赛调度算法。

2 名参与者似乎都知道这个问题。例如,请参见此处:Round Robin Algorithm Implementation Java

与 6 支球队(A、B、C、D、E、F)的比赛示例:

  1. (ABC)(DEF)
  2. (ABD)(CEF)
  3. (安倍)(CDF)
  4. (ABF)(CDE)
  5. (ACD)(BEF)
  6. (王牌)(BDF)
  7. (ACF)(BDE)
  8. (ADE)(BEF)
  9. (ADF)(公元前)
  10. (AEF)(BCD)

如果团队数量为奇数(即 A、B、C、D、E),我希望每轮进行 3 路和 2 路比赛:(ABC)(DE)

一旦解决了 3 路问题,我想对 4 路游戏做同样的事情。

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

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

4

1 回答 1

1

要从 N 中选择 K 项,您需要组合

请注意,C(6,3)=20但是您确实修复了一项(A)并且确实有C(5,2)=10变体

组合生成有很多实现-最简单的是递归,更有效的是字典顺序生成-简单的C代码

于 2018-08-01T15:04:14.610 回答