アルゴリズムと計算量の問題
バケット数 のチェイン法ハッシュ表に、互いに異なる 個のキーを挿入する。各キーのハッシュ値は 個のバケットのどれかに等確率 で定まり、キーどうしのハッシュ値は互いに独立であるとする。 個のキーから選んだ 個のキーの組(順序は考えない)のうち、 個が同じバケットに入る組を「衝突する組」と呼ぶ。衝突する組の個数の期待値を求めよ。
この問題で使うもの
- ハッシュの衝突の期待値(説明と入口の問題)
この問題を解けるようになるまで(71 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
一覧で見る(前提が先)
- 樹形図で数え上げる
- 積の法則と和の法則
- 和の法則・積の法則と樹形図
- 順列・円順列・重複順列
- 組合せ
- 確率の定義と和事象・余事象
- 期待値
- 確率変数と確率分布
- 平均と合計
- 平均値・中央値・最頻値
- 代表値(平均値・中央値・最頻値)
- 分散と標準偏差
- 変量の変換と平均・分散
- 確率変数の期待値・分散と
- 確率変数の和と積(独立な場合)
- 指示変数と期待値の線形性
- 条件付き確率と乗法定理
- 独立な試行と反復試行
- 分数のたし算・ひき算
- 小数の四則計算
- 正負の数の加法・減法
- 分数のかけ算・わり算
- 四則の混じった計算の順序
- 正負の数の乗除・累乗と四則混合
- 分配法則を使った計算のくふう
- 文字式の計算(同類項・分配法則)
- 乗法公式による展開
- 因数分解
- 3 次式までの展開と因数分解
- 微分係数と導関数の定義
- 多項式の微分
- 小数と分数のまじった計算
- 逆算(□ を求める)
- 1 次方程式の解き方
- 比例・反比例の式とグラフ
- 約数の見つけ方
- 素因数分解と約数の個数
- 平方根の意味と根号の簡単化
- 関数 の式と変域
- 平方完成と 2 次関数のグラフ
- 2 次不等式
- 剰余の定理・因数定理と高次方程式
- 増減表と極値
- 等間隔にならんだ数の和
- 等差・等比数列の和と Σ
- 数列の極限
- 関数の極限
- 関数の連続性と中間値の定理
- 平均値の定理
- 積と商の微分
- 第 2 次導関数とグラフの凹凸
- 合成関数の微分
- 円の周の長さと面積
- おうぎ形の弧の長さと面積
- 弧の長さからおうぎ形の中心角と面積を求める
- 三角形・四角形の面積
- 三平方の定理
- 特別な直角三角形の辺の比
- 弧度法と単位円による三角関数
- の極限
- 加法定理と 2 倍角・半角・積和の公式
- 三角関数の導関数
- 根号の乗除と加減
- 指数の拡張と指数関数
- 対数の定義と性質
- 自然対数の底
- 指数関数・対数関数の導関数
- 増減・凹凸・漸近線とグラフ
- テイラー展開
- ハッシュの衝突確率(誕生日問題)
- ハッシュの衝突の期待値
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
「ハッシュの衝突の期待値」の技能を使う。衝突する組の個数を、キーの組ごとの指示変数の和に分けて、期待値の線形性を使おう。
ヒント 2
キーの組は 組あり、ある 1 組の 2 個のキーが同じバケットに入る確率は ( はバケット数)である。
ヒント 3
、1 組が衝突する確率は である。あとはこれらを掛ければよい。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
衝突する組の個数を とする。 を指示変数の和に分けて、期待値の線形性を使う。
手順 1:指示変数に分ける。 個のキーから 個を選ぶ組は 組ある。各組 に対して、 と が同じバケットに入るとき 、そうでないとき をとる指示変数 を考えると
となる(和は 組すべてについてとる)。
手順 2:1 組が衝突する確率を求める。 キー がどのバケットに入っても、キー が と同じバケットに入る確率は、ハッシュ値が独立かつ一様なので である。よって
手順 3:期待値の線形性で足し合わせる。 各 どうしは独立とは限らないが、期待値の線形性は独立でなくても成り立つので
したがって、衝突する組の個数の期待値は である。
別解
6 個のキーから 2 個を選ぶ組は 通りある。各組について、2 個のキーが同じバケットに入る確率は、 である。衝突する組の個数を、各組が衝突するかどうかを表す指示確率変数の和として表すと、期待値の線形性より、期待値は となる。検算として、一般式 と一致する。