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