2017-09-22 3 views
1

私は10チームあり、ゲームでの戦いをするための活動をしたいと思います。10チーム6ラウンドのラウンドロビンスケジュールを作成

  • チームは、私はExcelやRでこれを行うことができます
  • だけのユニークなペア

を競合する各ラウンド5ペアで6ラウンド

  • に競合しますか?

  • +0

    SOの良い質問をするには、このガイド(https://stackoverflow.com/help/how-to-ask)を参照してください。 Rに関連する質問をしたい場合は、再現可能なサンプルを提供する方法についての素晴らしい記事があります(https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-例)。 – www

    +0

    10チームは、9 + 8 + ... + 1 = 45のユニークペアを意味します。ラウンドあたり5対6ラウンド= 30対。 15ペアの削減を達成するために追加のルールは何ですか? 10チームを2つの5つのグループに分けると、1グループあたり15ペアとなり、全体で30ペアになります。 – DMM

    答えて

    3

    適用する必要があるのは、ラウンドロビントーナメントのアルゴリズムスケジューリングです。アルゴリズムの説明(要素の回転)は非常に簡単で、hereを見つけることができます。要約すると、14のチームを持ち、以下のようにマトリックスに配置します。

    enter image description here

    アルゴリズムは同じ場所の最初の要素を保ち、特定の回転を行います。 enter image description here

    enter image description here

    ここでは、以下の実施例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 
    

    お楽しみください!

    関連する問題