• 締切済み

バドミントンの対戦表をエクセルで作りたいのですが

バドミントンのダブルスの対戦表をエクセルで作ろうと思っているのですが、どうやって作ったらいいのかわからず、どなたか知恵を貸していただけないでしょうか? バドミントンのダブルスは1コート4人で行われるため、4人でバドミントンを行ったりする場合は簡単に組合せが作れます。4人に1番~4番の番号を振り分けると、1番と2番がペアで3番と4番がペア。その次は1番と3番がペアで2番と4番がペア。というふうになります。 しかし、それが例えば2コート、10人でダブルスをやろうとすると、8人がコートに入り、2人が休みになります。 同じペアで組まないようにしたいので、全員が違うペアと組んで試合をするには、何試合も試合を行わなければいけなくて、その組み合わせを考えるのが自力ではできませんでした。 3コートで14人とかなってくるともっと複雑で、どうやって組み合わせを考えたらいいかわかりません。 プログラムに詳しい方がおりましたら、どうすればエクセルで計算できるか、ご助力願えませんでしょうか。お願い致します。

みんなの回答

回答No.3

エクセルである必要はあるのでしょうか? 完全にランダムでいいのであれば、以下のサイトが携帯からも見えるようですので、コートサイドで使用できると思います。 http://sports.geocities.jp/doubles_pair_site/ ただ、人数によって同じペアと組むことがあったり、全員とペアを組めなかったりしてます。 スマホをお持ちであれば、今はアプリがいくつかあるようです。

参考URL:
http://sports.geocities.jp/doubles_pair_site/
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

単純な組合せを作るなら以下のマクロで作れます。 Sub 組合作成(ByVal 人数 As Long) Dim 表 As Worksheet Dim 人1&, 人2&, 人3&, 人4&, 列&, 行&, 終& Set 表 = ThisWorkbook.Worksheets(1) '第1シートに記録する 表.Cells.ClearContents If 人数 < 4 Then Exit Sub '4人未満なら何もしない 終 = 人数 - 1 For 人1 = 1 To 終   For 人2 = 人1 + 1 To 人数     行 = 行 + 1     列 = 1     For 人3 = 人1 + 1 To 人数       If 人3 <> 人2 Then         For 人4 = 人3 + 1 To 人数           If 人4 <> 人2 Then             If 列 = 1 Then               表.Cells(行, 列).NumberFormat = "@"               表.Cells(行, 列) = CStr(人1) & "-" & CStr(人2)             End If             列 = 列 + 1             表.Cells(行, 列).NumberFormat = "@"             表.Cells(行, 列) = CStr(人3) & "-" & CStr(人4)           End If         Next       End If     Next   Next Next End Sub 厄介なのが、コートと対戦ペアの割り当てです。現在、考慮中です。

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.1

ちょっと難しい問題だと思います。 結論から言うと、2コート10人ダブルスの場合は、全員が他の人と必ず1回だけペアになるような組み合わせは存在しません。 どのような組み合わせを考えても、必ず同じペアになる2人が出てくるかまたはペアにならない2人が出てきます。 理由を簡単に説明すると、 1人がペアを組むのは残り9人ですから、試合をする延べ人数は10×9=90人 1試合4人ですから、試合数は90÷4=22.5 0.5の試合というのはありえないですからそういう組み合わせは不可能ということになります。 なお、2コート9人や3コート13人のように1人だけ休みの場合は存在します。 同じペアにならない組み合わせでの最大の試合数は22試合、 必ず1回はペアになる組み合わせでの最小の試合数は24試合(1回に2試合するとして)、 また、10人が平等に同じ回数だけ試合をするというなら20試合(1人8試合)か30試合(1人12試合) ですが、その組み合わせは無数にあります。 実際には、その中でなるべく同じ人との対戦が少なくなる(1~2回、24,30試合の場合は2~3回)ような組み合わせが理想だと思います。 これはプログラミングというより数学の組み合わせ理論の問題です。 詳しく知りたい場合はいったん締め切って問題を整理してから、学問&教育の数学カテゴリーで質問してみてはどうでしょうか。

関連するQ&A

  • 乱数を使ってバトミントンの対戦表を作りたいのですが

    皆様お世話になります。 エクセルの乱数を使ってバトミントンの対戦表を作りたいのですが、バトミントンのチームが4チームあり参加人数が1チームあたり3人から14人で階級が1から6まであり階級別に6面のコートを使用する予定で1コート当たりのMAX14人で50試合出来れば同じ対戦にならないようにし、数字で表示ではなく名前で表示出来るようにしたいのですがご教示願えませんでしょうか? よろしくお願いします。

  • バドミントン練習試合の組み合わせ方について

    ダブルスで3コートで12人で練習試合を6セット位しますが(いつも12人とは限らない)毎回ペア変えてまたコートも順次3コートを変えて組み合わせたいのですが同じペアにならないように組む方法はありませんか?エクセル関数でもいいし何かいい方法は?・・・頭がこんがらがってもう大変。よろしくお願いします。

  • バドミントン・ミックスダブルス乱数表について

    初めまして。タイトルにありますようにミックスダブルスでの乱数表を探しております。いろんなサイトで探してはみたのですが、すべて数字ばかりで。できれば数字とアルファベットが混合になっている組み合わせ表が理想です(泣)2コート使用できるとして人数は10人から20人程度です。ミックスダブルスばかりではなく2試合に一度、男性対男性、女性対女性になるような(>_<)とても難しく私の頭では作成できないです。

  • 総当たりの対戦表がうまく作れません(>_<)

    球技大会があるので総当たりの対戦表を作らないといけないんですが、複雑すぎて難しいのでこういうの得意な人いたらでいいので作ってください。 条件は 1組から6組まであり、5組と6組は2チームあり、5組Avs5組Bのように同じ組同士での対戦はありません。 よって全てで26試合あると思います。 それをA,B,Cの3コートで9回(最後の1回はCでの試合はない)やる総当たりを作りたいです。 ぼくは何回やってもうまく作れません。 時間があったらでいいので、助けてください。

  • テニス大会ダブルスの乱数表の作成をお願いしたい

    テニス大会開催のため、プレーヤーの組み合わせに乱数表を使うことになり、過去の質問・回答を検索しテニス乱数表の作成法を2件見つけたのですが、1件は同じプレーヤーの組み合わせ(ペア)が複数組できてしまい、もう1件は一人当たりのゲーム数が同数にならない(一定の試合数で、ある人は2ゲーム、ある人は5ゲームなどバラつきが出る)ことがわかりました。 そこで以下の条件で乱数表の作成をお願いしたいのですが。 1.1日で完了するダブルスのテニス大会 2.参加者(プレーヤー)は、10-30人程度 3.コートは2面を並行使用の予定なので、一人が同時に2面に入らない 4.全員が一人あたり4ゲーム行う 5.全員が4ゲームともそれぞれ別の人とペアを組む(同じペアを複数回作らない) 6.対戦相手はそれ以前のゲームと同じ人でも構わない(5.があるので同じペアとの再戦はない) よろしくお願いします。

  • エクセルで対戦表の作り方

    今度5人でサッカーをする事になりました。そこでエクセルファイルで対戦表を作るように 依頼されました。そこで関数の使った効率の良い作成の仕方教えて頂けないでしょうか? 内容は、 (1)参加人数は5人。 (2)サッカー場は2箇所 (3)対戦はホーム&アウェー方式(一つの相手チームに対し2回試合を行う) 対戦相手は重複しないように作りたいのですがご教示頂ければ幸いです。

  • バドミントン 十八番

    高校からバドミントンを始めたものなのですが あと、4,5ヶ月で引退試合です。 もっと上手くなりたいので、出来れば 自分が十八番とする戦術やフェイントを 教えていただけるとありがたいです。 シングルスでもダブルスでもいいので 教えてください。 よろしくお願いします

  • テニスのダブルス8人での対戦組合せ

    ダブルスのテニス乱数表をネットで入手したのですが、 組むペアについては【条件1】を満たしているのですが、 対戦相手については【条件2】を満たしているものが無く、 自分で試行錯誤して作成してもなかなか納得のいくものが出来ません。 【条件1】:自分以外の人と1回だけペアを組む 【条件2】:自分以外の人と必ず2回対戦する 1の人を軸に【条件1】及び【条件2】を満たす対戦表を作りましたが、 その後がなかなか難しくて完成には至りません。 合計試合数は14(7×8÷2÷2)になります。 12-34  13-78 23-15 14-67 24-?? 34-12 15-23 25-?? 35-?? 45-17 16-28 26-?? 36-?? 46-?? 56-18 17-45 27-?? 37-?? 47-?? 57-?? 67-14 18-56 28-16 38-?? 48-?? 58-?? 68-?? 78-13 このような対戦表を作成するのに お詳しい方のご教示を頂ければ幸いです。

  •  バドミントンの大会の組み合わせとルール

    職場でバドミントン大会をレクレーションとして行いたいのですが 64名をダブルスで32チーム150分で終わらせたいとおもいます。 コートは4コートある会場です。 みんなが楽しめて また時間内に終わらせるには どんな組み合わせで どのようなルールが良いのでしょう。 みんな素人です。

  • テニスの組合せ表の作り方を教えて下さい。

    仲間とテニスの試合を楽しんでいるのですが、ダブルスの組合せ表の作り方および組合せ表があればご提供いただけますでしょうか。 4名から10名でダブルスを楽しむ組合せ表があると嬉しいのですが宜しくお願いいたします。 同じ人が連続しないような組合せ表を知りたいのです。宜しくお願いいたします。

専門家に質問してみよう