基本情報技術者 2013年 秋期 午前(科目A) 問19
問題文
直接編成ファイルにおけるレコードのキー値を格納アドレスに変換したハッシュ値の分布として、理想的なものはどれか。
選択肢
ア:一様分布(正解)
イ:幾何分布
ウ:二項分布
エ:ポアソン分布
直接編成ファイルにおけるハッシュ値の分布はどれか【午前2 解説】
要点まとめ
- 結論: 直接編成ファイルで理想的なのはハッシュ値がアドレス空間に偏りなく分散する一様分布で、衝突や偏りが最小化されアクセス効率が向上します。
- 根拠: 一様分布なら各格納アドレスに割り当てられるレコードの期待値が等しくなり、探索や挿入の平均コストが均一化され性能が安定します。
- 差がつくポイント: ハッシュ関数選定では一様性(分散の小ささ)を重視し、サンプルでカイ二乗検定や負荷分散の確認を行うことが得点差につながります。
正解の理由
直接編成ファイルはキー値から格納アドレスを求め、そのアドレスにレコードを置く方式です。理想的には各アドレスにほぼ均等にレコードが割り当てられることが望ましく、これが一様分布です。一様分布であれば特定のアドレスに偏って集中することがないため、衝突(同一アドレスへの複数キー)が減り、アクセス時間や格納効率が良好になります。したがって選択肢の中で「一様分布」が正解です。
よくある誤解
- 「ポアソン分布が理想」は誤り:個々のアドレスに入るレコード数の近似分布としてポアソンが現れる場合はあるが、理想のハッシュ値の分布そのものは一様である点を混同しやすいです。
- 「幾何分布・二項分布でもよい」は誤り:幾何分布は成功までの試行回数、二項分布は成功回数の分布であり、格納アドレスへの値の“偏りがないこと”を表す一様性とは本質的に異なります。
解法ステップ
- 「直接編成ファイル」の意味を確認する(キー→アドレスの直接変換で格納)。
- 理想状態の要件を定義する(偏りなくアドレス空間に分散すること=アクセス効率の均一化)。
- 各選択肢が「アドレスへの分布のどの性質」を示すかを比較する(一様=均等、ポアソン/二項/幾何=別の確率論的性質)。
- 要件に一致するのは「一様分布」であるため、これを正解とする。
選択肢別の誤答解説
- ア: 一様分布 — 正解。ハッシュ値がアドレス空間に偏りなく分散すれば衝突が減り性能が安定します。
- イ: 幾何分布 — 誤り。試行回数に関する分布であり、アドレス空間への均等分散を意味しません。
- ウ: 二項分布 — 誤り。固定試行回数における成功回数の分布で、ハッシュ値が均等に広がる性質を直接表しません。
- エ: ポアソン分布 — 誤り(状況依存で似た振る舞いをすることはある)。多数のキーを多くのバケットにランダムに割り当てると各バケットの個数分布は近似的にポアソンとなる場合がありますが、ハッシュ値自体の理想的な分布はやはり一様です。
補足コラム
- 理論的には、n 個のキーを m 個のバケット(アドレス)に独立に一様に割り当てると、ある特定バケットに入るキー数は二項分布 Bin(n, 1/m) になります。n と m が大きく が小さい場合、これはポアソン分布 に近似できます。すなわち「各バケットの個数分布がポアソンに近い」という話と「ハッシュ値が一様分布であるべき」という設計要件は混同しないようにしてください。
- 実装上のポイント:良いハッシュ関数は入力の統計的偏りを打ち消して出力を一様化します。チェイニングやオープンアドレッシングといった衝突処理も併せて設計することが重要です。
- 検証方法:実装後はサンプルデータでヒストグラムを作成し、カイ二乗適合度検定などで一様性をチェックします。
FAQ
Q1: 「ポアソン分布でも実用上は問題ないのでは?」
A1: バケットごとの個数がポアソンに近いのは理論的近似として自然ですが、設計目標はハッシュ出力の一様性です。ポアソン近似は統計的解析の一助で、正解は一様分布です。
A1: バケットごとの個数がポアソンに近いのは理論的近似として自然ですが、設計目標はハッシュ出力の一様性です。ポアソン近似は統計的解析の一助で、正解は一様分布です。
Q2: ハッシュ関数が偏るとどうなるか?
A2: 特定のアドレスにデータが集中して衝突が増えるため、探索・挿入の平均コストが上昇し性能が劣化します。
A2: 特定のアドレスにデータが集中して衝突が増えるため、探索・挿入の平均コストが上昇し性能が劣化します。
Q3: 一様性の検定方法は?
A3: 出力のヒストグラムを作り、カイ二乗検定や期待値との誤差を評価して偏りを検出します。
A3: 出力のヒストグラムを作り、カイ二乗検定や期待値との誤差を評価して偏りを検出します。
Q4: 実務での対処は?
A4: ハッシュ関数を見直す、乱択ハッシュ(universal hashing)の利用、衝突処理の強化(リハッシュやチェイン)などで改善します。
A4: ハッシュ関数を見直す、乱択ハッシュ(universal hashing)の利用、衝突処理の強化(リハッシュやチェイン)などで改善します。
関連キーワード: ハッシュ関数、ハッシュ衝突、一様分布、ロードファクタ、分散、ポアソン近似、二項分布、幾何分布、負荷分散

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

