Quantcast
Channel: 質問!ITmedia 新着質問(Java/253)
Viewing all articles
Browse latest Browse all 2439

スポーツ大会のタイムテーブル作成について

$
0
0
テニス大会のタイムテーブルに関する 乱数表(プログラミング)作成をお願いできないかと思い相談致しました。 テニス大会開催に関して、 下記の比較的、複雑な条件下で大会を運営しています。 そのため試合投入のスケジュール(順番)を組む仕事が手作業になり困っています。 簡素なプログラムで構わないのでなんでも是非お願いします。 ---------条件-------- (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日間の大会のとき) も求められる仕様もあれば、さらに助かります 長文失礼いたしました。 お返事いただけると幸いです。よろしくお願いいたします。

Viewing all articles
Browse latest Browse all 2439

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>