先日の第7回日曜数学会で福原和朗さんが「トーナメントは運か実力か」という大変面白いLTをしておられました。今回は福原さんのLTを受けて、私が見つけた数式について発表させていただきます。
福原さんのLTに関しては下記のリンクのブログにまとめられております。
発表
第7回日曜数学会で発表してきました。 - kazurof weblog
福原さんは後述するある確率の数値解(←コンピュータ等を用いた計算による数値で与えられる解)を発表されたのですが、LTの後に、「必ず確率を文字式で解を表せるよね(つまり解析解(←問題を特徴付ける変数で表された代数的な解)が得られるよね)」と2人で会話させていただきました。先日のMathPowerで行われた素数大富豪のトーナメント表を見てそのことを思い出し、無事に解析解を見つけることができましたので、ここに発表したく思った次第です。
本記事の数学面の説明は、高校レベルの確率(特にコンビネーションの使い方、赤い玉と白い玉が入っている袋から玉を取り出す系の確率の問題の解き方、何人かを一列に並べて特殊な並べ方の場合の数を求める方法)を習得している人を想定して記載しております。ただ高校確率の知識がない方でも問題の設定は理解していただけると思いますので、こういった現実的な問題を数学を使って解くことができるということ、つまり数学の力を感じていただけたら幸いです。
始まり、始まり
↑
「トーナメントは運か実力か(解析解編)」というタイトルで発表させていただきます。
夏の高校野球やリオオリンピックの柔道は負けたら終わりのトーナメント方式ですね(オリンピックの柔道に関しては敗者復活戦があるため完全に負けたら終わりというわけではありませんが)。トーナメントでは第1回戦で実力が1位と2位の人が戦ったら、2位の人は初戦敗退となってしまいます。また、実力がない人でもたまたま対戦相手が自分よりも下の実力であれば、第二回戦、第三回戦と勝ち進むことができます。理不尽だな、と思った経験はないでしょうか。
(余談ですが、駒大苫小牧高校は2004年、2005年と夏の甲子園を連覇しております。そしてなんと2006年の夏も甲子園の決勝まで行っているんです。この2006年の決勝こそ歴史に残る引き分け再試合となった、「ハンカチ王子こと斎藤佑樹」VS「マー君こと田中将大」なんです。夏2連覇して、その翌年の夏も決勝まで進むとは、駒大苫小牧の実力やばいですね。)
数学の確率を使えば理不尽なことがどれほど起こり得るのか、ということを定量的に表すことができます。では問題設定を行います。
↑
を正の整数として、人が参加するトーナメントを考えます。ただしトーナメントは上図のような綺麗な形のトーナメントを考え、シードがあったり、参加者によって優勝するまでに必要な勝利数が異なったりしないものとします。
参加者を人(つまり2人、4人、8人、16人、、、)という人数に縛るのは綺麗な形のトーナメントにするために必要な条件となります。という制約を課すことで第1回戦、第2回戦、第3回戦、、、という風に第回戦終わるごとに勝ち残っている参加者の数が半分になり続け、第回戦で1人になる(つまり優勝者が決まる)綺麗な形のトーナメント表を作成することができます。綺麗な形のトーナメントという数学的ではない表現が出てしまっておりますが、その意味するところはわかっていただけると思います(ちなみに数学的には完全2分木という言葉で表します)。
↑
参加者には「強さ」を示す数値があらかじめ与えられており、各試合では「強さ」が大きい参加者が必ず勝つものとします。
「強さ」は1からまでの整数値をとり、参加者の「強さ」はそれぞれ異なるものとします。つまり、1からまでの各整数値が人の参加者一人一人に対して重複なく割り振られているものとします。
「強さ」を持つ参加者はランキング1位、「強さ」を持つ参加者はランキング2位、「強さ」1を持つ参加者はランキング位(つまりビリ)となります。毎回『「強さ」を持つ参加者』と書くのは大変ですので、今後は『「強さ」を持つ参加者』のことをさんと呼ぶことにしましょう。
↑
上述した設定の元、本記事の問題はこのようになります。
トーナメント表をランダムに組むという意味は、人の参加者をランダムに一列に並べ、トーナメント表の一番下に据えるということになります。
各試合では「強さ」が大きい参加者が必ず勝つため、さん(つまり「強さ」を持つ参加者)が必ず優勝しますし、1さん(つまり「強さ」1を持つビリの参加者)は必ず初戦敗退します。2さんは初戦が1さんでなければ第2回戦に進みますが、第2回戦では必ず負けるでしょう。でさんがちょうど回勝つ確率を表しますから、上で話した簡単な考察ですぐに下記のことがわかります。問題が解けた暁には、下記が成り立っているかを確認することでその妥当性を判定できそうです。
さんは絶対優勝する。必ずちょうど回勝つ。逆にちょうど回()勝つことはない。
1さんは必ず初戦敗退。逆にちょうど回()勝つことはない。
2さんは初戦が1さんでなければ第1回戦勝てるが、第2回戦は必ず負ける。初戦の相手が1さんでなければ初戦敗退する。
(トーナメント表はランダムのため、例えば初戦の相手が1さんになる確率は、参加者から2さんを除いた人のうち1さんだけということで、となります。)
↑
具体的な例を見つつ、何が問われているかを確認しましょう。上図はの例になります。
このトーナメントではランキング2位の7さんが初戦敗退している上、ランキング5位の4さんが決勝戦に進んでいるなど、かなり理不尽なことが発生しております。このような理不尽なことがどれほど発生するのかということを、確率という道具を使って評価しよう、ということになります。
以上で問題設定を終わります。イメージは掴めましたでしょうか。
↑
「さんがちょうど回勝つ確率を求めよ」と言われてもどこから手をつけてよいかわかりません。人が参加するトーナメント表は単純に考えると通りのパターンがあり、考えようとするだけでも頭がこんがらがりそうです。
今、さんがちょうど回勝つ確率を考えたいので、まずはさんだけに注目することで考察を始めるための入り口を模索していきたいと思います。
トーナメント表をランダムに組むとさんの最初の位置は様々です。しかし上図のようにさんを隣のさんと入れ替えた2つのトーナメント表は本質的に同じものであるといえます。同様にさんとさんの2人分の組で構成されたトーナメントのブロックを隣のブロックと入れ替えてもトーナメント表は同じものであると言えるでしょう。トーナメント表は参加者が勝ち進んでいくと、どこを勝ち進んだ勝者と戦うことになるのかを示すものであり、ブロックの左右の入れ替えには影響を受けないため、このような操作をしてもトーナメント表の本質は変わりません。さんができるだけ左に行くように各階層でブロックを入れ替えていくと、元のトーナメント表と本質的に同じトーナメント表でさんが一番左下に配置されているものを得ることが可能になります。つまりさんは始めからトーナメント表の一番左下に固定してよいということがわかります(数学的にはこのことを「さんを左下に固定しても一般性を失わない」と表現します。)。
さんを一番左下に置くトーナメント表を考えることで何かいいことがあるでしょうか。まず最初に感じられるメリットは問題のサイズを落とすことができたということになります。元々通りのトーナメント表の可能性がありましたが、さんを左下に固定することで残りの人の並べ替えである、通りに問題のサイズを落とすことができました。つまり問題のサイズがになっています。例えばの場合を考えるとの時間で結果を出すことができるわけで、これは数値シミュレーションを行う場合には大変都合の良いメリットになります。
一般性を失わないようにもっと場合の数を減らすことは可能でしょう(例えば第一回戦の対戦では左側に強さが小さい人が来るように配置する等)。ただこれ以上の一般化は数値シミュレーションをする上でメリットになっても、今回のように解析的に解を求めたい場合は必ずしもメリットになりません。場合分けが多く発生し、論理的に考える思考の妨げになるからです。実は今回の一般化は問題のサイズを落とす以上のメリットがあります。さんを左下に持っていくことで、さんが回勝つための必要条件を簡単に考察することができるのです。
↑
本格的な考察に入る前に、今後の考察、記載を容易にするため、上図のようにトーナメント参加者にラベルをつけておきます。
↑
ではさんが回勝つための必要条件を求めましょう。さんをトーナメントの左下に固定した威力が発揮されるときがきました。
必要条件というのはさんが回勝つために最低限満たさなければいけない条件となります。つまり必要条件を満たしてもさんがちょうど回勝つとは限りません。回以上勝つ可能性もあるわけです。「さんが回勝つための必要条件」というのは「さんが最低回勝つための必要十分条件」ということになります。なおしばらくの間、「は1ではない」、かつ「は0でない」として話を進めます。またはは、さんが初戦敗退するという少し趣が異なる事象になるため、考察がしにくくなります。
まずはさんが1回勝つ必要条件(つまり初戦突破する条件)を求めましょう。数学では文字式を使った一般的な議論の前に具体的な数値でイメージをつかんで一般化するという手法が有効です。さんが1回勝つためには初戦の相手であるがさんよりも弱い(=「強さ」の小さい)1さんからさんであることが明らかに必要条件になります。つまりさんが1回勝つための必要条件は「が1さんからさんのいずれかである。」ということになります。
次にさんが2回勝つ必要条件を求めましょう。がさんよりも弱い参加者であることは明らかに必要ですが、さんは第二回戦ですぐ隣のブロックのとの勝者と戦うわけですから、、のいずれもさんよりも弱い1さんからさんのいずれかであることが必要条件になります。つまりさんが2回勝つための必要条件は「、、が1さんからさんのいずれかである」ということになります。
同様に考察を行うとさんが回勝つための必要条件は「〜が1さんからさんのいずれかである」ということが分かるかと思います。
めでたしめでたしとしたいところですが、ここでもう一つ考えないといけない条件があります。例えば5さんは4回勝つことができるでしょうか。5さんが4回勝つためには〜が1さんから4さんである必要があります。からに重複なく1さんから4さんを割り振ることは不可能です。つまりさんが回勝つためにはも必要になるわけです。
例えば5さんがb回勝つためには
が満たされる必要がありますから、
となり、これを満たすは1、2のみとなります。つまり5さんはどれだけ頑張っても3回以上勝つことができないのです。
以上まとめるとaさんがb回勝つための必要条件は、
「」 かつ 「〜が1さんからさんのいずれかである」
となります。
↑
最終的に求めたいものはさんがちょうど回勝つ確率のですが、その一歩手前として、さんが最低回勝つ確率を求めましょう。(という文字に特別の意味はなく、最初に私がノートで計算した際にたまたま用いた文字で、ここでもそのまま使わさせていただきます。)
前章でさんが回勝つための必要条件、つまりさんが最低回勝つための必要十分条件が得られております。これを丁寧に確率の計算に当てはめてあげれば良いです。上図に記載した通り、確率の定義を思い出しておきましょう。
まず、求めたい確率の分母である全体の場合の数を求めます。今左下にさんを固定しているため、トーナメント表の組み合わせとして起こりうる全体の場合の数は、さんを除く人を一列に並べる並べ方の総数であるに等しくなります。一列に並べて左の人から順に、、、、、と割り振っていけばよいのです。
↑
次に確率の分子になるさんが最低回勝つトーナメントの総数を求めましょう。
まず、からにさんより弱い1さんからさんまでを割り振る場合の数を求めます。これは人の中から人を選出し、選出された人を一列に並べる場合の数の総数になります。人から人を選出する組み合わせは通り、その各々に対して選出された人を一列に並べる総数はですから、この場合の数はとなります。
そして、その各々に対し参加者の割り振られていないからへ人に選出されなかった残りの人、つまり人を割り振ります。この並べ方はさんが最低回勝つという事柄に影響しませんので、単純に一列の並べ方の総数を出せばよくとなります。以上まとめると、さんが最低回勝つトーナメントの総数はとなります。
↑
確率の分母、分子が求まりましたので、さんが最低回勝つ確率は上図の通りとなります。を使うことで、なんともシンプルで綺麗な表記になりました。
なお、最後のはの大文字であり、高校で習ったシグマ()の掛け算版の記号として使われます。
つまり、
です。
のときは、さんは絶対に回勝てないので、となります。
今、で考察していました。つまり、1さんは最弱のため1回も勝つことができません。つまりとなるに対して、明らかにです。
そしてなるに対して、ですから、今回求めたはに対しても成り立つことがわかります。
↑
さて、本題であったさんがちょうど回勝つ確率を求めましょう。ただし、ここでもとします。に対しては次章で求めたいと思います。
以前にも注意した通り、はさんが最低回勝つ確率であり、ちょうど回勝つ確率ではありません。しかし下記の考え方から、から、簡単にを求めることができます。
トーナメントが一つ与えられたとき、さんが初戦敗退するか、ちょうど1回勝つか、ちょうど2回勝つか、ちょうど3回勝つか、、、ちょうど回勝つか(つまり、優勝するか)はどの2つの事象も同時に起こることはありません。「ちょうど3回勝つ」と「ちょうど4回勝つ」という事象は同時に起こらないのです。このことを確率の言葉で排反事象といいます。
「さんが最低回勝つトーナメントの総数」は、「さんがちょうど回勝つトーナメントの総数」と「さんがちょうど回勝つトーナメントの総数」と「さんがちょうど回勝つトーナメントの総数」、、、「さんがちょうど回勝つトーナメントの総数」の和になります。
このことから(両辺をトーナメントの総数で割ることで)、「さんが最低回勝つ確率」=「さんがちょうど回勝つ確率」+「さんがちょうど回勝つ確率」+「さんがちょうど回勝つトーナメントの確率」+・・・+「さんがちょうど回勝つ確率」となるのです。
今求めたいものは「さんがちょうど回勝つ確率」ですが、今具体的に求まっているには、上図の通り邪魔な確率「さんが回以上勝つ確率」が含まれてしまっております。しかし、「さんが回以上勝つ確率」=ですので、から邪魔な確率を引いたものが、になるのです。
↑
これまではを考えておりました。最後につまり、さんが初戦敗退する確率を求めましょう。これまでの議論に比べればとても簡単なものになります。
上図では少し丁寧に確率を求めましたが、さんが初戦敗退する必要十分条件は、「初戦の対戦相手のがさんより強い」になります。さんの初戦の相手となり得る参加者の総数は、人の参加者からさんを除いたです。そのうちさんより強い人は人おりますし、初戦の相手が誰になるかはさんを除く参加者全てに対して同様に確からしいため、さんが初戦敗退する確率は、
になります。
↑
以上の議論をまとめると、最終的な解析解は上図の通りになります。誰かが注文したわけではないのに、このような綺麗な形になるところに数学の美しさを感じてしまします。
、に具体的な値を入れて計算すると、とてもよくできた数式だと感心します。例えば、1さんが必ず初戦敗退することや、さんが必ず優勝するということを上記の式から計算して確認してみてください。一体この数式は誰が考え、生み出したのでしょうか。とても神秘的な気持ちになります。
今回の所感として、問題が解けたことに驚きを感じています。この世の中には未だ解けない難問が数多く存在します。一見簡単そうな問題でも、解けていないものが多くあります。今回の問題もたまたま解くことができましたが、解けるという保証はありませんでした。簡単に解ける問題、解けない問題の違いは何か、なぜ今回解けたのか、考えるのも怖いくらい難しい問題な気がします。
今回得られた解析解からどんな面白いことがわかるかという考察はしておりません。それはまた機会があれば考察したいと思います。例えば「一回戦敗けの人の言い訳はどれだけ信用してもよいか?」や「にして、を区間の連続変数と考えた時のの分布はどうなるか?」等々。後者の分布を出せば、福原さんが日曜数学会で発表されていた、「2位の人は運ゲーである」ということについても目に見える形でわかるのではないかと思います。