You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求可生成无重复配对的锦标赛选手轮次配对算法

循环赛无重复配对算法实现方案

这种算法是存在的,就是标准循环赛赛程编排算法,完全能满足你的需求:每一轮所有参赛者都完成配对,且每位选手的每轮对手都不重复,同时不会生成[1,2]和[2,1]这类重复配对(算法本身以无序对手对为核心编排)。

核心实现思路分两种情况:

1. 参赛人数为偶数(N为偶数)

采用固定轮转法,步骤如下:

  • 将选手编号为1~N,固定1号选手的位置
  • 剩余选手按顺时针或逆时针方向轮转,每一轮生成一组配对:
    • 第一轮:1对阵N,2对阵N-1,3对阵N-2……以此类推
    • 第二轮:保持1号位置不变,其余选手整体轮转一位,生成新的配对组合(比如1对阵N-1,N对阵N-2,2对阵N-3……)
    • 重复轮转操作,直到完成N-1轮比赛(每个选手需要和其余N-1个对手各赛一次)

举个4人参赛的例子:

  • 轮次1:1-4,2-3
  • 轮次2:1-3,4-2
  • 轮次3:1-2,3-4
    每一轮的配对都无重复,每个选手的对手也完全不重复。

2. 参赛人数为奇数(N为奇数)

需要引入轮空机制,虚拟一个“轮空位”凑成N+1个参赛对象,按偶数人数的轮转法编排:

  • 每一轮会有一位选手与轮空位配对(即该轮轮空)
  • 轮空选手会在后续轮次中依次与其他所有真实选手配对,确保每个选手的轮空次数均匀分配,且所有真实选手之间都完成一次无重复配对

关键特性

  • 每一轮的配对都是唯一的无序对,不会出现[1,2]和[2,1]这类重复结果
  • 总共会生成N-1轮(偶数人数)或N轮(奇数人数)比赛,覆盖所有可能的选手配对组合
  • 配对顺序可以根据需求调整,不需要严格遵循固定的轮转顺序,只要保证每轮配对不重复、选手对手不重复即可

内容的提问来源于stack exchange,提问作者Μελέτης Πέππας

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 08:55:19