令和4年度 秋期 プロジェクトマネージャ試験 データベーススペシャリスト試験 エンベデッドシステムスペシャリスト試験 システム監査技術者試験 情報処理安全確保支援士試験 午前 I 問題 【共通】 問3
自然数をキーとするデータを,ハッシュ表を用いて管理する。キー のハッシュ関数 を
とすると,任意のキー と が衝突する条件はどれか。ここで, はハッシュ表の大きさであり, は を で割った余りを表す。
解答・解説
正解: イ. が の倍数
ハッシュ表において、異なるキーが同じハッシュ値を持つことを衝突(シノニム)と呼びます。与えられたハッシュ関数 において、キー と が衝突する条件は、 が成り立つことです。式で表すと、以下のようになります。 これは、 を で割った余りと、 を で割った余りが等しいことを意味します。このとき、 と の差をとると、余りの部分が相殺されるため、 は で割り切れる、すなわち が の倍数 となります。合同式で表すと となります。
各選択肢の解説
- ア ( が の倍数): 誤り。例えば の場合、 で の倍数ですが、、 となり衝突しません。
- イ ( が の倍数): 正解。衝突する正しい条件です。
- ウ ( が の倍数): 誤り。例えば の場合、 で はその倍数ですが、、 となり衝突しません。
- エ ( が の倍数): 誤り。例えば の場合、 で はその倍数ですが、、 となり衝突しません。