我有10支球队,我想举办一场活动让他们在比赛中战斗。
我可以在Excel或R中执行此操作吗?
答案 0 :(得分:3)
您需要应用的是循环赛锦标赛的算法排程。算法(元素旋转)的解释非常简单,可以找到here。总结一下,有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
享受!