昔、トーナメント表を自動作成するプログラムをつくろうと分析していて気付いたことですが、トーナメント表の順位を表す数値は面白い数列をなしています。周りに話しても、あまり真剣に受け取ってもらえなかったのですが、ここでなら考えてもらえるかと思いました
ここで、順位のつけ方の確認をします。例えば8人の場合、左端を1として、反対の右端が2、そして中央にきて2の向かいが3、1の向かいが4。以下4の相手が5、3の相手が6、2の相手が7、1の相手が8となります。
以下9人以上増えていっても順次下位のものから対戦相手としていけばいい訳です。
そこで、数学的にはっきりさせて、n人のトーナメントのk番目の位置にある番号はいくつか。ただし、nは2の自然数乗であるとします。本当は一般化したほうがいいのですが・・・。
たぶん、プログラムと相性はいい筈です。なお、今日初めてここにカキコしてみました、悪い点があったら指摘してください。木村
悪い点なんてとんでもない。この問題は何度かいろんな人に相談を受けたりしましたね。懐かしい。吹奏楽だとトーナメントはないので、多分に他の人経由ですね。最近はエクセルで組んであるようなものも多いようです。面白いのはいろんな競技で「別々に」作っているところです。何故でしょう?僕にはそちらのほうが気になります。一つで良いと思うのだけど。
質問です。勝負事にうといのでよく分からないのですが,トーナメント表というのは 2のべき乗数+半端 というふうにエントリー数を区分けしておいて,その前者で例の二股山を作っておいて,それに半端のやつを割り込ませて1回戦からの対戦ペアと2回戦からのシードチームを作るんですよね?で,その中にくじ引きでランダムにチームをあてはめる。---というイメージしかないのです。だから,「順位の付け方」というのが存在するということがよく分かりません。
それではその半端というのはどうするのがいいか考えてみてください。例えば3人の場合、2人だけ1回戦があるのですが、3位はあたりまえとして、その相手は2位がそうなるのが自然ですよね。この様に順次適用していけば自然と順位のつけ方が存在するのです。
ははあ,もう試合前から順位が全チームについているんですか!試合前は全員同資格だろうと思っていたのです。なるほど話しの筋はなっとく。しかしそういうものなんですかね,うーむ。強いやつは最初から優位に置かれるというのは、おいらの哲学に反するぞ。
商売柄ツリーやヒープの構成の手順が頭に浮かんでくるのですが,ちょっと仕事中で余裕なし。あとで考えよう。
二つセットで内向き外向き、和が2の累乗2の累乗+1ですね。あとは枝を入れていくだけ。付け加える場合も和を基準に相方を探索ですね。
プログラムと相性はいい筈、というのは表現が遠すぎましたか。はっきりいうと、2進法で考えるとおもしろいです。
ふー。寸暇を惜しんで盗んでの書き込みだぜ。ようするに、
って書いてみたらあとは一気なんじゃじゃない?って暗示したいわけね。
やっと一息。その間に、(Lispな人向け?)
CENTER: (1 2) CENTER: ( (1 4) (3 2) ) CENTER: ( ( (1 8) (5 4) ) ( (3 6) (7 2) ) ) CENTER: ( ( ( (1 16) (9 8) ) ( (5 12) (13 4) ) ) ( ( (3 14) (11 6) ) ( (7 10) (15 2) ) ) )
こうかな?話を戻しているのかも。てなことないかあ。二進法のほうが見やすいのかなあ?うーんわからん
平たく置いちゃだめです(一撃当て逃げフォロー)。
0 |
1 |
00 |
11 |
10 |
01 |
000 |
111 |
100 |
011 |
010 |
101 |
110 |
001 |