dポイントプレゼントキャンペーン実施中!

テニス大会のタイムテーブルに関する
乱数表(プログラミング)作成をお願いできないかと思い相談致しました。

テニス大会開催に関して、
下記の比較的、複雑な条件下で大会を運営しています。

そのため試合投入のスケジュール(順番)を組む仕事が手作業になり困っています。

簡素なプログラムで構わないのでなんでも是非お願いします。


---------条件--------




(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日間の大会のとき)
も求められる仕様もあれば、さらに助かります


長文失礼いたしました。

お返事いただけると幸いです。よろしくお願いいたします。

A 回答 (1件)

この要件でプログラムを組んでほしいという質問でしたら「百万単位の金を出すなら組みますよ? 期間も1か月以上かかりますし、その間こちらの疑問点に即座に回答できる担当者を出してもらいますけど」という答えになります。



というか、検索して出てきた以下のページを読むと、結局手作業の方が早いという事になりそうですが……。
http://research.nii.ac.jp/~uno/schedule.htm
    • good
    • 0
この回答へのお礼

ありがとうございます!^^

お礼日時:2014/08/11 05:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!