基本情報技術者 2010年 春期 午前(科目A) 問06
問題文
ハッシュ表探索において、同一のハッシュ値となる確率が最も低くなるのは、ハッシュ値がどの分布で近似されるときか。
選択肢
ア:2項分布
イ:一様分布(正解)
ウ:正規分布
エ:ポアソン分布
🔒 解説は解答すると表示されます
ハッシュ値の分布特性【午前解説】
正解の理由
ハッシュ表で衝突(同一ハッシュ値になること)を見るとき、まず各バケットに入る確率をと置きます。異なる2要素が同じバケットになる確率は
制約は(全確率の和)です。このとき関数は凸であり、等確率(はバケット数)を代入すると最小値を取ります。したがって、ハッシュ値が一様分布(イ)に近いほど衝突確率が低くなり、正解は イ です。
また実用的には、要素数に対する期待衝突ペア数は
一様分布ならとなり、衝突が抑えられることが直感的にもわかります。
解法ステップ
- 各バケットに入る確率をと定義する()。
- 異なる2要素が同じバケットに入る確率をと導出する。
- 制約下でを最小化する問題を考える(凸性またはラグランジュ乗数法)。
- 解として(一様)が得られ、衝突確率は最小であると結論付ける。
選択肢別の誤答解説
- ア: 2項分布 — 2項分布は成功確率に依存して質量が特定の値に集中するため、バケット割当が均一になるとは限らず衝突を最小にしません。
- イ: 一様分布 — 各バケット確率が等しくなりが最小化されるため正解です。
- ウ: 正規分布 — 連続的に中心付近へ集中する性質があり、有限のバケットに割り当てると中心バケットに偏り衝突が増えます。
- エ: ポアソン分布 — イベント数の散発的発生を表す分布で、特に低平均や高平均で偏りが生じ得るため均一とは言えません。
よくある誤解
- 「正規分布やポアソン分布なら散らばるから衝突が減る」は誤り。これらは中心付近に質量が集中する場合が多く、バケットへの割当は偏りが出やすいです。
- 「ランダムに振れば必ず一様になる」は誤り。ランダム性の定義やハッシュ関数の性質次第で偏りが残ることがあります。
- 「入力データの分布は無視できる」と考えるのは危険。入力分布が偏っていれば、ハッシュ関数で均一化できなければ衝突が増えます。
補足コラム
- 実装面では「一様分布に近づける」ことが重要であり、良いハッシュ関数(例えば汎用の乱数似た混ぜ合わせを行うもの)やリハッシュ/チェイニング戦略が有効です。
- 誕生日のパラドックス的観点では、バケット数に対して要素数が約程度になると衝突が急増します。均一でもこのスケールは変わりません。
- 一様分布での期待衝突ペア数は約。従って負荷係数を管理することが衝突回避につながります。
FAQ
Q1: 入力データが偏っているときはどうすればよいですか?
A1: 良いハッシュ関数で入力の偏りを均す(均等に散らす)か、リハッシュやバケット数の増加、開番地法やチェイニングなどの衝突処理を組み合わせます。
A1: 良いハッシュ関数で入力の偏りを均す(均等に散らす)か、リハッシュやバケット数の増加、開番地法やチェイニングなどの衝突処理を組み合わせます。
Q2: 2項・正規・ポアソンはそれぞれどのようにハッシュに影響しますか?
A2: いずれも一様ではないため、バケットの偏りを生みやすく、衝突確率を増やすリスクがあります。入力値の性質に注意が必要です。
A2: いずれも一様ではないため、バケットの偏りを生みやすく、衝突確率を増やすリスクがあります。入力値の性質に注意が必要です。
Q3: 理論的な最小値は常に実装で達成できる?
A3: 理想的な一様性は理論上衝突を最小にしますが、実装上のハッシュ関数の選択や入力の性質により完全な一様化は難しい場合があります。
A3: 理想的な一様性は理論上衝突を最小にしますが、実装上のハッシュ関数の選択や入力の性質により完全な一様化は難しい場合があります。
関連キーワード: ハッシュ、衝突確率、一様分布、2項分布、正規分布、ポアソン分布、バケット、ハッシュ関数、ロードバランシング、衝突回避、誕生日のパラドックス、期待値

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

