アルゴリズムと計算量の問題
昇順に並んだ互いに異なる 個の数の配列 から、値 を次の二分探索で探す。ただし、 は のどれかと必ず等しいとする。
- はじめに , とする。
- とし、 と を比較する。この比較は 回で「」「」「」のどれであるかがわかるものとし、比較 回と数える。
- ならば探索を終える。 ならば とし、 ならば として、前の手順に戻る。
が のそれぞれと等しい確率がどれも であるとき、探索を終えるまでの比較回数の期待値を求めよ。
この問題で使うもの
- ソート・探索の最悪比較回数(説明と入口の問題)
- 指示変数と期待値の線形性(説明と入口の問題)
この問題を解けるようになるまで(29 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
一覧で見る(前提が先)
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
となる ごとに、何回目の比較で となるかを調べ、それを平均すればよい。
ヒント 2
二分探索で比較される位置を木の形(最初が 、次が または 、…)に描くと、 の比較回数はその木での深さ(根を とする)に等しい。
ヒント 3
比較回数が 回なのは 、 回なのは 、 回なのは である。残りの の比較回数を求めて合計しよう。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
のときの比較回数を、 のそれぞれについて調べる。
1 回目の比較: , なので 。 ならば比較 回で終わる。
のとき(範囲 ): 。 ならば比較 回で終わる。
- : 範囲 で 、比較 回。
- : 範囲 で 。 は比較 回。 は範囲 に進み比較 回。
のとき(範囲 ): 。 ならば比較 回で終わる。
- : 範囲 で 。 は比較 回、 は範囲 に進み比較 回。
- : 範囲 で 。 は比較 回、 は範囲 に進み比較 回。
まとめると、比較回数は
- 回: ( 個)
- 回: ( 個)
- 回: ( 個)
- 回: ( 個)
となる(合計 個で、すべての場合を数えている)。比較回数の合計は
であり、各 の確率は なので、期待値は
である。
別解
各 について、探索を終えるまでの比較回数を調べる。
1 回目: より 。よって は 1 回。
左側 : 。 は 2 回。
- : 。 は 3 回。
- : 。 は 3 回。続いて : 。 は 4 回。
右側 : 。 は 2 回。
- : 。 は 3 回。続いて : は 4 回。
- : 。 は 3 回。続いて : は 4 回。
比較回数の内訳: 1 回が 1 個()、2 回が 2 個()、3 回が 4 個()、4 回が 3 個()。個数の合計は で一致する。
合計は 。各確率は なので期待値は 。
検算: 比較回数が最大 4 で、深さ 1,2,3 の節点がそれぞれ最大 個あり、これらを使い切り残り 3 個が深さ 4 に入る二分探索木の形と一致する。