令和6年度 秋期 プロジェクトマネージャ試験 データベーススペシャリスト試験 エンベデッドシステムスペシャリスト試験 システム監査技術者試験 情報処理安全確保支援士試験 午前 I 問題 【共通】 問3
自然数をキーとするデータを,ハッシュ表を用いて管理する。キー のハッシュ関数 を
とすると,任意のキー と が衝突する条件はどれか。ここで, はハッシュ表の大きさであり, は を で割った余りを表す。
解答・解説
正解: イ. が の倍数
ハッシュ表において、衝突(コリジョン)とは、異なるキーが同じハッシュ値を持つことを指します。
今回のハッシュ関数は です。
キー と が衝突する条件は、 となること、すなわち、 となることです。
これは、 を で割った余りと、 を で割った余りが等しいことを意味します。
余りが等しい2つの数の差は、 で割り切れる、つまり の倍数 になります。
したがって、 が の倍数となる場合が、衝突の条件となります。
各選択肢の解説
- ア: が の倍数
などとなるケースであり、 とは限りません。例えば のとき、(5の倍数)ですが、 であり衝突しません。 - イ: が の倍数
正解です。差が の倍数であれば、余りが等しくなり衝突します。例えば のとき、(5の倍数)で、 となり衝突します。 - ウ: が の倍数
が の約数であることを意味します。余りが一致する条件とは関係ありません。例えば のとき、 は の約数( は の倍数)ですが、 であり衝突しません。 - エ: が の倍数
が の約数であることを意味します。例えば のとき、 は の約数( は の倍数)ですが、 であり衝突しません。