
テニス大会開催のため、プレーヤーの組み合わせに乱数表を使うことになり、過去の質問・回答を検索しテニス乱数表の作成法を2件見つけたのですが、1件は同じプレーヤーの組み合わせ(ペア)が複数組できてしまい、もう1件は一人当たりのゲーム数が同数にならない(一定の試合数で、ある人は2ゲーム、ある人は5ゲームなどバラつきが出る)ことがわかりました。
そこで以下の条件で乱数表の作成をお願いしたいのですが。
1.1日で完了するダブルスのテニス大会
2.参加者(プレーヤー)は、10-30人程度
3.コートは2面を並行使用の予定なので、一人が同時に2面に入らない
4.全員が一人あたり4ゲーム行う
5.全員が4ゲームともそれぞれ別の人とペアを組む(同じペアを複数回作らない)
6.対戦相手はそれ以前のゲームと同じ人でも構わない(5.があるので同じペアとの再戦はない)
よろしくお願いします。
No.6ベストアンサー
- 回答日時:
No.2です。
一応、VBAで作ってみましたけど、かなり長くなってしまいました。
ここに投稿しようとすると、5回ぐらい連投しないといけなくなりそうですので
別の方法でお伝えさせていただきます。
もしかしたら規約違反かもしれませんので、その場合はあしからず。
まず、添付画像のような表を作成してください。
シート名は「Sheet1」としてください。
以下シートの内容です。
G列に選手名を列挙する(タイトル行なし、1行目から)
H列、I列は、1~人数までの乱数を発生させるために使用
J列以降は、ペアを組んだ人の名前を順に記録するために使用
(試合がなかった人は空白)
A~F列に、抽選結果(試合の組み合わせ)を出力する
次にSheet1を右クリックして「コードの表示」でVisual Basic Editorが起動しますので
参考URLのリンク先の本文に書いてあるコードをコピー&ペーストしてください。
ここでファイルをいったん保存して閉じ、開きなおしてください。
その時「マクロを有効にする」を選択してください。
ツール>マクロ>マクロで「Sheet1!抽選」というマクロを実行してください。
以上です。
参考URL:http://blog.goo.ne.jp/dondondon999/e/288d3f23e5a …

don9don9様
お礼が遅くなり失礼しました。
大変なプログラムを作成いただき本当にありがとうございます、同時に、半ば諦めていましたので実際に使用できるものができて驚いています。
大いに参考にさせていただき、大会を盛り上げていきたいと思います。
ありがとうございました。
No.5
- 回答日時:
「最大出場者だったら1日で終わらない」なら、
4試合→3試合調整、と思いましたがそうでもなければ、試合時間は問題ないです。
数字と選手名とで紐付けできていたら、
1試合目
「AB」と「CD」、データ上は「01ABCD」
「A」は誰、「B」は誰、「C」は誰、「D」は誰、
2試合目
「EF」と「GH」、データ上は「02EFGH」
「E」は誰、「F」は誰、「G」は誰、「H」は誰、
こんな考じで管理かと思います。
組み合わせペアをランダムに出すことよりもダブりがないかチェックのが面倒です。
それか、
将来的には仕組みを作るとして、
とりあえず、
ビンゴゲームに使う乱数を出す機器、シートを使う等しても
いいと思います。
No.4
- 回答日時:
> 当方が乱数表に拘っているのは、ご回答のような方法ですと次の対戦者ないしはペアが誰なのか分かりやすく、時にはすぐ近くにいて、事前に打ち合わせなどができてしまう場合があり、公平性に欠けるかなと思うからです。
乱数表を使えば、番号がバラけて、誰がどこにいるか把握しにくくなり、ある程度公平性が保てるかなと思った次第です。対戦表は、事前に作っておくんですよね?
もしかして、対戦のたびに乱数を発生させて、組み合わせを決めたいのでしょうか?
もし、対戦のたびに乱数を発生させるつもりなら、最後に近づくにつれて、ペア作成不可能になる可能性もあると思いますよ。
事前に乱数で対戦表を作ったとして、それを最初に公表するのであれば、やはり「事前に打ち合わせなどができてしまう場合」があるので、対戦ごとに発表するんですよね?
なのであれば、乱数で対戦を決めなくても、ある法則にしたがって対戦を決めて、その順序を適当に入れ替えて、それを対戦ごとに発表するだけで良いと思いますけど。
この回答への補足
ご回答ありがとうございます。
対戦表を事前に作っておいて大会当日の始めに掲示することを考えています。
もう少し補足しますと大会は、A:(自己申告)上級者、B:一般男子、C:一般女子+小学生以下、の3グループに分けて行います。それぞれの参加者は10-22名なので、全体では50-60名程度です。コートは全部で4面あり、適宜3グループに振り分けて行います。そのためそれぞれのグループに応じた人数の乱数表を作りたいと考えた次第です。
ドタキャンに備えて、その場で作成することも有り得ると考えています。
しかしながら、いくつかご回答をいただいて、(大会はJOPのポイント対象ではなく)親睦大会なのでそこまで拘る必要はないかなと思い始めました
ご指摘のように、乱数表を使わない組み合わせでも十分であるわけですからね。
ご回答をいただいた皆さま、ありがとうございました。
参考にしていたいただいて大会に臨みたいと思います。
No.2
- 回答日時:
申し訳ないですが、乱数での処理は不可能に近いと思います。
>4.全員が一人あたり4ゲーム行う
>5.全員が4ゲームともそれぞれ別の人とペアを組む(同じペアを複数回作らない)
この部分が厄介です。
同じペアを複数回作らない、ということであれば
一度作ったペアは全てどこかに記録しておかなければなりません。
その上で、乱数を発生させてペアを決める際に
・その人のペアは過去に組んだ相手ではないか?
・その人の試合数は4試合を超えていないか?
・その人の手空き数は、(人数÷2を切り上げた値) - 4を超えていないか?
などを複雑に計算しなければなりません。
後の試合になるほどペア成立条件が厳しくなるため、一度ではうまく成立せず
条件に合うまで何度も乱数を発生させ直す、ということになるかと思います。
ヘタをすると、最初の数試合のペアの成立状況によっては
何度乱数を発生させ直してもペアができない状況になる
(手詰まりになる)可能性もあります。
あらかじめ人数分の番号を振っておいて、
ローテーション方式にした方がよろしいかと思います。
No.1
- 回答日時:
数珠をずらしていくイメージでどうでしょうか?
10人以上ということですが、まずは8人の場合から。
参加者が1から順にゼッケンをつけているとして、
1&8 Aコート1試合目
vs
2&7
3&6 Bコート1試合目
vs
4&5
その後は、
8&7 Aコート2試合目
vs
1&6
2&5 Bコート2試合目
vs
3&4
次は、
7&6 Aコート3試合目
vs
8&5
1&4 Bコート3試合目
vs
2&3
最後は、
6&5 Aコート4試合目
vs
7&4
8&3 Bコート4試合目
vs
1&2
こうすれば、全員が4試合ずつやって、同じ人とペアになることも無く、同じ人が同時に2面に入ることもありません。
15人なら、4で割り切れる人数だけで、組んで、
1&12 Aコート1試合目
vs
2&11
3&10 Bコート1試合目
vs
4&9
5&8 Aコート2試合目
vs
6&7
次は、余った人を先頭にして、また4で割り切れる人数。
13&9 Bコート2試合目
vs
14&8
15&7 Aコート3試合目
vs
1&6
2&5 Bコート3試合目
vs
3&4
同様に、
10&6 A4
vs
11&5
12&4 B4
vs
13&3
14&2 A5
vs
15&1
7&3 B5
vs
8&2
9&1 A6
vs
10&15
11&14 B6
vs
12&13
4&15 A7
vs
5&14
6&13 B7
vs
7&12
8&11 A8
vs
9&10
他の人数に関しては、まったく検証していませんが、同様のやり方でいけるような気がします。
ちなみに、1人5試合以上となると、このやり方ではかぶってしまいます。
この回答への補足
ご回答をありがとうございます。
昼間ログインできない環境のため補足が遅れました、失礼しました。
ご回答いただいた方法は存じております。「ダブルスの組み方」などで検索すればいくつかの例が見つかります。
当方が乱数表に拘っているのは、ご回答のような方法ですと次の対戦者ないしはペアが誰なのか分かりやすく、時にはすぐ近くにいて、事前に打ち合わせなどができてしまう場合があり、公平性に欠けるかなと思うからです。乱数表を使えば、番号がバラけて、誰がどこにいるか把握しにくくなり、ある程度公平性が保てるかなと思った次第です。
ご理解のほど、よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 何回やれば終わるか。 2 2023/05/17 23:42
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- 日本語 何故、テニスのブズコバは、 加藤未唯のやったことに猛抗議したのか? 2 2023/07/11 10:30
- その他(趣味・アウトドア・車) EXCELの計算 3 2023/03/16 10:02
- 大学・短大 回答お願い致します! 次の設定で、それぞれの確率を計算せよ。 あるゲームでは、あることに1人でチャレ 2 2023/01/10 23:34
- Excel(エクセル) エクセルで当番表を作成したいです。 1 2023/08/09 19:53
- Visual Basic(VBA) ExcelのVBAを使い、複数シートの同一箇所を、同一条件にて一括でソルバーを回す方法について 1 2022/04/23 11:49
- 数学 モンティ・ホール問題 12 2022/09/24 12:47
- ボードゲーム にゃんこ大戦争 にゃんこ成人について 1 2023/01/19 07:23
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ヒートテックはまだ暑いですか?
-
お店でコートを間違えられました。
-
飲食店でのコートの取り違え
-
動けない負傷者がいる場所から...
-
EAST BOYを大学生・社会人が着...
-
10年前の双眼鏡 ラバーコート...
-
洋服の生地で「WS」の表示は?
-
そでが長い(Pコート)短くしたい
-
左上のコートに合わせるならど...
-
東京でのコート
-
ミルコート仕上げ(玉砂利洗い...
-
チャイナドレス
-
時間のお金換算の考え方
-
クレーム対応
-
プードルコートとか好きなんで...
-
(和装)黒の道行コートって普...
-
コートの取り違えについて
-
テレビで着用されていたダウン...
-
気づかなかったバッテン印
-
中綿ポリエステルコートのシワ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バレー9チーム3コート総当た...
-
ヒートテックはまだ暑いですか?
-
アスファルト乳剤1tは何リット...
-
コートやパーカーのファスナー...
-
職場の飲み会(ほぼ同僚と仲の...
-
お店でコートを間違えられました。
-
洋服の生地で「WS」の表示は?
-
そんなに非常識でしょうか?
-
至急!!私服★ジャケットの上に...
-
リーグ戦総当り表の作成につい...
-
飲食店でのマナー(コート)
-
EAST BOYを大学生・社会人が着...
-
飲食店でのコートの取り違え
-
ミルコート仕上げ(玉砂利洗い...
-
テニスの乱数表作成
-
着用回数の少ないコート類をク...
-
バーバリーのトレンチコート ...
-
【緊急】スーツの背中にある縫...
-
上着や防寒具を脱ぐか脱がないか
-
こっちの店の方が安かった! シ...
おすすめ情報