アルゴリズムと計算量の問題
互いに異なる 個の数が入った配列を、次の乱択クイックソートで小さい順に並べる。
- 並べる対象の数が 個または 個のときは、何もせずに終わる(比較は行わない)。
- 対象の数が 個()のときは、その 個の中からピボットを 個、等しい確率 で選ぶ。ピボットを残りの 個のそれぞれと 回ずつ比較し(比較は 回)、ピボットより小さい数の組と大きい数の組に分ける。それぞれの組に対して、同じ手順を繰り返す。
ピボットの選択はすべて互いに独立に行われるものとする。このとき、 個の数を並べ終えるまでに行われる比較の回数の期待値を求めよ。
この問題で使うもの
- 乱択クイックソート・乱択選択の期待比較回数(説明と入口の問題)
この問題を解けるようになるまで(64 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
一覧で見る(前提が先)
- 樹形図で数え上げる
- 積の法則と和の法則
- 和の法則・積の法則と樹形図
- 順列・円順列・重複順列
- 組合せ
- 確率の定義と和事象・余事象
- 期待値
- 確率変数と確率分布
- 平均と合計
- 平均値・中央値・最頻値
- 代表値(平均値・中央値・最頻値)
- 分散と標準偏差
- 変量の変換と平均・分散
- 確率変数の期待値・分散と
- 確率変数の和と積(独立な場合)
- 指示変数と期待値の線形性
- 分数のたし算・ひき算
- 小数の四則計算
- 正負の数の加法・減法
- 分数のかけ算・わり算
- 四則の混じった計算の順序
- 正負の数の乗除・累乗と四則混合
- 分配法則を使った計算のくふう
- 文字式の計算(同類項・分配法則)
- 乗法公式による展開
- 因数分解
- 3 次式までの展開と因数分解
- 微分係数と導関数の定義
- 多項式の微分
- 多項式の不定積分
- 等間隔にならんだ数の和
- 等差・等比数列の和と Σ
- 数列の極限
- 関数の極限
- 積と商の微分
- 合成関数の微分
- 円の周の長さと面積
- おうぎ形の弧の長さと面積
- 弧の長さからおうぎ形の中心角と面積を求める
- 三角形・四角形の面積
- 約数の見つけ方
- 素因数分解と約数の個数
- 平方根の意味と根号の簡単化
- 三平方の定理
- 特別な直角三角形の辺の比
- 弧度法と単位円による三角関数
- の極限
- 加法定理と 2 倍角・半角・積和の公式
- 三角関数の導関数
- 根号の乗除と加減
- 指数の拡張と指数関数
- 対数の定義と性質
- 自然対数の底
- 指数関数・対数関数の導関数
- 基本的な関数の不定積分
- 置換積分
- 部分積分
- 定積分の計算
- 定積分の置換・部分積分と偶関数・奇関数
- 重積分と累次積分
- 同時分布・周辺分布と独立性
- 条件付き確率と乗法定理
- 条件付き分布と全期待値の公式
- 乱択クイックソート・乱択選択の期待比較回数
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
全期待値の公式を使って、ピボットが小さい方から何番目かで場合分けし、比較回数の期待値 の漸化式を立てましょう。
ヒント 2
ピボットが 番目のとき、比較は 回(の期待値)です。これより となります。
ヒント 3
, , です。これらを使って を計算しましょう。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
対象が 個のときの比較回数の期待値を とおく。比較回数は数の値そのものではなく、個数と大小の順位だけで決まるので、 は だけで決まる。
漸化式を立てる(全期待値の公式)
個のうち小さい方から 番目の数がピボットに選ばれる確率は である()。このとき、まず 回の比較を行い、小さい組に 個、大きい組に 個が入る。それぞれの組の比較回数の期待値は , なので、ピボットが 番目であるという条件のもとでの期待値は
である。全期待値の公式より
ここで と はどちらも に等しいから
小さい から順に計算する
(確認: のとき、ピボットが最小または最大なら比較は 回、中央なら 回なので、期待値は となり一致する。)
よって求める期待値は である。
別解
個の場合の比較回数の期待値を とする。。
漸化式: 。
: 。
: 。
: 。
検算: 別の方法として、順位 の 2 数が比較される確率は である。差が 1 の組は 3 組で確率 、差が 2 の組は 2 組で確率 、差が 3 の組は 1 組で確率 。合計は で一致する。