総当たり対戦表メーカー|試合順と先攻後攻の偏りを数えて作る
参加者の名前を貼り付けるだけで、総当たり戦の試合順・星取表・人ごとの出番表を作る無料ツール。コート数に合わせて連戦を減らし、先攻後攻の回数を揃えます。連戦がこれ以上減らせないかも根拠つきで表示。
2〜30 人まで。名前は 20 文字まで、同じ名前は使えません。
参加者を 2 人以上入れてください
試合順・人ごとの出番表・星取表を作り、連戦と先後の回数を数えます
このツールについて
使い方・特徴・補足情報
総当たり対戦表メーカーとは
総当たり対戦表メーカーは、参加者の名前から総当たり戦の試合順を組む道具です。
コートの数を選ぶと、同時に行う試合をまとめた「枠」に割り付けます。連戦が少なくなる並びを選び、先攻と後攻の回数も人ごとに揃えます。
連戦の回数には、これ以上減らせるかどうかの判定を添えます。言い切れるのは、理屈の下限に届いたときと全通りを調べたときだけです。
結果は試合順の表・星取表・人ごとの出番表の 3 つで出ます。試合順と星取表はそのまま印刷して会場に貼れます。
こんな人におすすめ
サークルや部活の大会の幹事
楽になること
総当たりの試合順を組む
避けたい手間
同じ人の連戦や先攻の偏り
解決できる困りごと
- 総当たりの組み合わせを手で書き出して、1 組だけ抜けたり 2 回書いたりする取りこぼしを防げる
- 同じ人が 2 試合続けて出る並びを、当日に気づいて組み直す手間が減る
- 先攻や先手がいつも同じ人に回っていないかを、1 人ずつ数えて確かめる作業がいらなくなる
- コートの数を変えたら何枠で終わるかを、表を作り直さずにその場で比べられる
- 連戦が残ったときに、並べ方が悪いのか人数とコート数の都合なのかを見分けられる
- 作り直すたびに表が変わって、配った紙と画面が食い違うという混乱を避けられる
使い方
- 参加者を 1 行に 1 人(1 チーム)ずつ入れます。名簿からの貼り付けでも構いません。
- コートの数を選びます。同時に行える試合の数のことで、人数の半分までです。
- 1 回総当たりか 2 回総当たりかを選びます。2 回にすると後半は先攻と後攻が入れ替わります。
- 先後の呼び方を選びます。将棋や囲碁なら先手・後手、リーグ戦ならホーム・アウェイにします。
- 要約で試合数・枠の数・連戦の回数と判定を確かめます。
- 人ごとの出番表で、連戦や最長の待ちが特定の人に偏っていないかを見ます。
- 「印刷する」で試合順と星取表を紙に出すか、「コピー」でテキストとして貼り付けます。
- 別の並びにしたいときは「別の並びにする」を押します。番号を控えれば同じ表に戻れます。
使用例
4 人を 1 コートで回す
連戦がどうしても 2 回残る例です。全通りを調べた最少だと判定される点に注目します。
入力
山田 / 佐藤 / 鈴木 / 高橋 ・ コート 1 面 ・ 1 回総当たり
出力
第1枠 #1 山田(先攻)対 佐藤(後攻)
第2枠 #2 鈴木(先攻)対 高橋(後攻)
第3枠 #3 山田(先攻)対 高橋(後攻)
第4枠 #4 佐藤(先攻)対 鈴木(後攻)
第5枠 #5 鈴木(先攻)対 山田(後攻)
第6枠 #6 高橋(先攻)対 佐藤(後攻)
連戦 2 回:コート 1 面の並べ方を全通り調べた最少です
6 人を 2 コートで回す
15 試合を 8 枠に収める例です。1 面が空く枠は最後に回り、連戦 12 回が下限と一致します。
入力
赤 / 青 / 黄 / 緑 / 白 / 黒 ・ コート 2 面 ・ 1 回総当たり
出力
8 枠(15 試合 ÷ 2 面の切り上げ)
第8枠は A コートだけ使う(#15 緑 対 赤)
連戦 12 回:コートが空く枠を最後に置く並べ方では、どう並べても 12 回より減らせません
先攻と後攻は全員 3 回と 2 回(差 1)
5 人で 2 回総当たりにする
後半で先後を入れ替えるので、全員の先攻と後攻がちょうど同じ回数になる例です。
入力
A / B / C / D / E ・ コート 1 面 ・ 2 回総当たり
出力
20 試合・20 枠。連戦 0 回。全員が先攻 4 回・後攻 4 回。全 10 組が先後を入れ替えて 2 回ずつ入っています
活用シーン
テニス・卓球サークルの練習試合
コートや台の数を選ぶだけで、同時進行の試合順が出ます。休みの人が枠ごとに分かるので、審判や記録の係を頼みやすくなります。
将棋・囲碁の研究会のリーグ戦
呼び方を先手・後手にすると、全員の先手の回数が表で揃います。奇数の人数なら全員がちょうど同じ回数です。
社内イベントのゲーム大会
ボードゲームや対戦ゲームの総当たりを、チーム名を貼るだけで組めます。試合番号つきの星取表を印刷して結果を書き込めます。
部活動の校内リーグ
2 回総当たりを選ぶと、前半と後半でホームとアウェイが入れ替わります。前半がすべて終わってから後半に入る並びです。
大会の所要時間の見積もり
コートの数を変えると枠の数がすぐ変わります。1 試合の時間を掛ければ、会場を借りる時間の目安になります。
技術的な解説
補足: 仕組み
試合数は n(n−1)/2 の計算で出ます。全員が同時に出られるなら、1 人を固定して残りを回す円形方式の回戦を枠にします。
コートが少ないときは貪欲法のアルゴリズムで枠を埋めます。同点は種つき乱数(mulberry32)で崩し、組み直す回数を固定して同じ表を出します。
1 コートで 15 試合以下なら、ビット集合の動的計画法で連戦の最少を求めます。先後は (j − i) mod n の規則で割り振ります。
もっと詳しく
連戦が「これ以上減らせない」と言える条件
隣り合う 2 枠に出る延べ人数が参加者の数を超えると、超えた分の人は必ず両方に出ます。これを全部の枠で足したものが連戦の下限です。
6 人を 3 コートで回すと下限も実際も 24 回です。この一致を確かめたときだけ「減らせません」と出します。
4 人を 1 コートで回すと、式は 0 でも実際の最少は 2 回です。同じ人を含まない組が 3 組しか無いためで、ここは全通りを調べています。
先攻と後攻の回数が同じにならない人数がある
総当たりでは 1 人が「人数 − 1」試合を戦います。偶数の人数だと試合数が奇数になり、先攻と後攻をぴったり同じにはできません。
このときの最小の差は 1 で、表では全員が差 1 に収まります。5 人・7 人のような奇数の人数なら、全員がちょうど同じ回数です。
2 回総当たりにすると後半で先後を入れ替えるので、人数に関係なく全員が同数になります。
コートを増やすほど連戦は避けにくくなる
コートを増やすと全体は早く終わりますが、1 枠に出る人が増えます。隣り合う枠で同じ人が重なる割合が上がるので、連戦は減らしにくくなります。
6 人なら 1 コートで連戦 0 回、2 コートで 12 回、3 コートで 24 回が目安です。時間と連戦のどちらを優先するかを、コートの数を切り替えて比べられます。
よくある質問
何人まで対戦表を作れますか?
2 人から 30 人までです。30 人の 1 回総当たりは 435 試合、2 回総当たりは 870 試合になります。
名前は 1 人 20 文字までで、同じ名前が 2 行あるとエラーにして行番号を示します。
奇数の人数でも組めますか?
組めます。枠ごとに試合に出ない人が「休み」として表に出ます。
全員が同時に出られるコート数なら、休みは 1 人ずつ順番に回り、同じ人が続けて休むことはありません。
コートの数はいくつまで選べますか?
人数の半分(端数は切り捨て)までです。1 試合に 2 人要るので、それより多くても同時に出られる人がいません。
多く選んだときは、使える面数に下げて組み、そのことを画面で知らせます。
同じ名簿で作り直すと表は変わりますか?
変わりません。同じ名簿・同じ設定・同じ並び番号なら、いつ作っても同じ表になります。
別の並びが見たいときは「別の並びにする」を押します。番号を 1 に戻すと最初の表に戻ります。
連戦が 0 回にならないのはなぜですか?
人数に対してコートが多いと、隣り合う枠で同じ人が重なるのを避けきれません。画面の判定が「減らせません」なら、人数とコート数の都合です。
「確かめていません」と出たときは、別の並びを試すと減ることがあります。
星取表のセルには何が入りますか?
その 2 人が当たる試合の番号と、行の人から見た先後です。印刷して、結果を書き込む欄として使えます。
2 回総当たりでは前半と後半の 2 つの番号が並びます。
試合の結果を入力して順位を出せますか?
このツールは試合前の段取りを作るところまでです。勝敗や得点の入力、順位の計算は持っていません。
印刷した星取表に結果を書き込み、集計は別に行ってください。
関連記事
このツールの使い方や活用例をブログでも紹介しています。
関連ツール
同じカテゴリの他のツールも合わせてどうぞ。