スポーツ大会のタイムテーブル作成について
テニス大会のタイムテーブルに関する
乱数表(プログラミング)作成をお願いできないかと思い相談致しました。
テニス大会開催に関して、
下記の比較的、複雑な条件下で大会を運営しています。
そのため試合投入のスケジュール(順番)を組む仕事が手作業になり困っています。
簡素なプログラムで構わないのでなんでも是非お願いします。
---------条件--------
(1)「3日」で完了する「ダブルス」のバドミントン大会
総人数は55~70名ほどが、あらかじめ「4つの班」 に分かれている。
各班およそ15名~17名程度でほぼ均等に振り分けられている。
ここでは(W 班、X班、Y班、Z班とする)
(2)班内でペアを作り、他班のペアとダブルスの試合する。 行う試合の数はその人によって異なる。
一人あたりの試合数がおおよそ6試合前後になるように私が組んで いる。
(総試合数は75~100試合程度)
レベル別に近い者同士がペアを組んで、 他の班のおおよそ同レベルの相手と試合できるように組んでいる。
つまり、対戦内容は(班内でのペアと、 その対戦相手の組み合わせ)は予め決まっていて
かつ、各々の試合内容は、 大会内での他の試合の結果に左右されて変動することはない。
(3)コートについては、 頃合いをみて運営スタッフが空いたコートに試合をコールする。
ゆえに最大のコート数やコート番号はここでは無視してよい。
(4)大会プログラムは1日目、2日目、3日目ともに
朝A (2~3試合)
朝B (7~8試合)
朝C (3~4試合)
昼A (2~3試合)
昼B (9~12試合)
夜A (2試合)
以上のような予定で行う。
(5)3日目の全体の試合数は、1・ 2日目のどちらよりも少ない試合数とする。
また、1日目と2日目の試合数の差は最大3試合までとする。
(6)試合が終わり、空いたコートから次の試合を順次入れてゆく
朝B・昼Bの試合は、 それぞれについて試合を入れる順番を決めなければならない。
(例、朝A、朝B-1、朝B-2、朝B-3・・・・ という順に行う。昼も同様)
ただし朝A、昼A、夜Aの試合は複数同時に開始させるため、 開始前はコートがすべて空くまで待機する。
(7)1人が一日分として試合できる数は1~3試合である。 0試合と4試合以上は不可。
(8)朝A,Bでの試合を禁止される人もいるため、 すべての人に確認をとる。
(9)一日分で3試合行うことがが禁止される人もいるため、 すべての人に確認を取る。
(10)同一人物における試合間隔は、「自分の入っていない6試合」 を空けなければ次の試合に入ってはならない。
また朝A、昼A、夜A、 の直前の待機時間は試合間隔にカウントしない。
(11)「朝A、昼A、夜A」 の試合は一斉にスタートするため、(10) の試合間隔を計算する際には、複数試合があっても、まとめて1試合分で考える。
例・・(10)と(11)より
(朝A)で試合に入った人が次に試合に参加できるのは、(朝B-7)から。
(昼A)で試合に入った人が次に試合に参加できるのは、(昼B-7)から。
(朝Cの最後)で試合に入った人が次に試合に参加できるのは、(昼B-6)から。
(12)夜Aで対戦を行うペアとその対戦相手ペアの8名は( 夜Aは2試合あるので合計8名)は初めから決まっていて、 固定である。
配置・内容は変動しない。ただし、 個々人の制限はカウント対象である。
例えば、夜Aに出場する人が、(7)や(9) の制限に該当する可能性もあるし、(10)の6試合間隔など、 他の条件もその通りに守らねばならない。
(13)(X班のペア vs Y班のペア)による対戦が3つ以上連続してはならない。
またこれは、(W班,X班,Y班,Z班) のすべての班同士についても同様とする。
ただし夜Aの試合については考慮しない
(14) X班全体で見たときに、 Y班のペアとの対戦が一日分の試合の半分以上を占めてはならない 。
またこれは、(W班,X班,Y班,Z班) のすべての班同士についても同様とする。
(15)もし3日間の大会ではなく、 2日間の大会だと総試合数は60試合程度になる。
その場合、2日目の試合数が1日目より多くなってはいけない。
----条件は以上です----
●まとめ●
「入力する情報」
・班名(W、X、Y、Z班)
・出場者各々の名前(ペア2名 と、それに対応する、 対戦ペア2名)を(約80~100試合分)
・夜A以外の、順序固定試合の有無
・出場者各々の禁止事項の確認
「知りたい情報」
条件、ルールを満たしつつ、
・1~3日目の、試合を入れる順番(3日間の大会のとき)
を「すべてのパターン」ないしは「ランダムに1パターン」 での出力を求める。
※人物名を省略して例を書くと
【朝A】同時開始
X班(あ&い) vs Y班(さ&し)
Y班(や&よ) vs Z班(な&に)
W班(ぺ&び)vs Z班(わ&を)
【朝B-1】
W班(ぬ&ね)vs X班(う&え)
【朝B-2】
Z班(の&は) vs W班(ひ&ふ)
・
・
という感じの
単純な投入の順番がわかればOKです。
ついでに
1~2日目の、試合を入れる順番(2日間の大会のとき)
も求められる仕様もあれば、さらに助かります
長文失礼いたしました。
お返事いただけると幸いです。よろしくお願いいたします。
お礼
KEIRIN.JPは毎日のように見てるんですが、「選手プロフィール」の「級班の履歴情報」にしか載ってないですよね? チェックしたい選手が多ければ、見るの大変なんですよね。(--;)
補足
下のお礼コメント違ってました。トップページの「競輪トピックス」に時系列で載りますね。 ありがとうございました。