アルゴリズムと計算量の問題
相異なる 個の実数を格納した配列 がある。 の要素のうち、小さい方から数えた順位が 以上 以下であるものを「良い要素」とよぶ。良い要素を つ見つけるために、次の乱択アルゴリズムを使う。
- 以上 以下の整数 を等確率 で選ぶ。
- を、それ以外の 個の要素 のそれぞれと 回ずつ比較して、 より小さい要素の個数を数え、 の順位を求める。
- が良い要素であればアルゴリズムを終了し、そうでなければ最初に戻って を選び直し、同じことをくり返す。
ここで、各回の の選び方は互いに独立であり、以前に選んだ位置が再び選ばれることもある。また、各回の比較はその回ごとに改めて 回行う(以前の比較結果は使わない)。アルゴリズムが終了するまでに行う要素どうしの比較の回数の期待値を求めよ。
この問題で使うもの
- 確率の定義と和事象・余事象(説明と入口の問題)
- 期待値(説明と入口の問題)
- 等差・等比数列の和と Σ(説明と入口の問題)
この問題を解けるようになるまで(17 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
まず、 回の試行で良い要素を引く確率を求めましょう。要素は相異なるので、各順位の要素はちょうど 個ずつあります。
ヒント 2
試行の回数は成功確率 の幾何分布に従い、その期待値は です。 回の試行ごとの比較の回数は成功・失敗に関係なく一定です。
ヒント 3
なので、試行の回数の期待値は です。これと 回あたりの比較の回数を組み合わせます。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
1 回の試行が成功する確率. 要素は相異なるので、順位は の 通りで、それぞれちょうど 個の要素に対応する。良い要素は順位が の 個である。 は等確率で選ばれるので、 回の試行で良い要素を引く確率は
である。
試行の回数の期待値. 試行の回数を とする。各回は独立で、毎回同じ確率 で成功するので、 は成功確率 の幾何分布に従い、正の整数 について
である。 に対して (等比級数 を項別に微分したもの)を使うと、 として
比較の回数の期待値. 回の試行では、成功しても失敗しても順位を決めるためにちょうど 回の比較を行う。したがって比較の総回数は であり、期待値の線形性から
(別解)比較の回数の期待値を とおく。 回目の試行で 回比較したあと、確率 で終了し、確率 で最初と同じ状態に戻るので
が成り立つ。よって より 。
別解
順位が 以上 以下の要素は 個なので、1 回の試行で良い要素を選ぶ確率は 。各回は独立なので、終了までの試行回数 は成功確率 の幾何分布に従い、。
各回の比較回数は常に 回なので、比較回数の期待値は
検算: 期待値 は を満たし、 より 。