为 10 支球队和 6 轮创建循环赛时间表

Pet*_*ang 2 excel r

我有10支队伍,我想举办一个活动,让他们在比赛中一战。

  • 球队进行 6 轮比赛
  • 每轮有 5 对比赛
  • 只有独特的对

我可以在 Excel 或 R 中执行此操作吗?

GoG*_*nzo 6

您需要应用的是循环赛的算法调度。算法(元素旋转)的解释非常简单,可以在这里找到。总结一下,有 14 个团队,我们将它们排列成矩阵如下。

在此处输入图片说明

然后算法进行特定旋转,将第一个元素保持在同一位置: 在此处输入图片说明

在此处输入图片说明

这是使用 R 完成的复制解决方案。 下面的示例适用于所有组合,但您可以根据自己的需要进行自定义 (n=10, r=13) 或运行所有轮次并随机选取 6 轮

library(dplyr)
n <- 14
teams <- 1:n
r <- 13


rounds <- list()
for( i in 1:r){
  round <- 
    data.frame(
      round = i,
      team1 = teams[1:(n/2)], 
      team2 = rev(teams)[1:(n/2)])
  rounds[[i]] <- round
  teams <- c( teams[1],  last(teams), head(teams[-1],-1) ) 
}

rr <- bind_rows(rounds)
head(rr)

# round team1 team2
# 1     1     1    14
# 2     1     2    13
# 3     1     3    12
# 4     1     4    11
# 5     1     5    10
# 6     1     6     9
Run Code Online (Sandbox Code Playgroud)

享受!