我有10支队伍,我想举办一个活动,让他们在比赛中一战。
我可以在 Excel 或 R 中执行此操作吗?
您需要应用的是循环赛的算法调度。算法(元素旋转)的解释非常简单,可以在这里找到。总结一下,有 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)
享受!