IPA過去問ドリル

令和6年度 秋期 応用情報技術者試験 午前 問6

テクノロジ/アルゴリズム

自然数をキーとするデータを,ハッシュ表を用いて管理する。キー x のハッシュ関数 h(x) を   h(x) = x mod n とすると,任意のキー a と b が衝突する条件はどれか。ここで,n はハッシュ表の大きさであり,x mod n は x を n で割った余りを表す。

出典:令和6年度 秋期 応用情報技術者試験 午前 問6

正解:イ

解説

h(x)=x mod nにおいて,h(a)=h(b)となるのはaとbをnで割った余りが等しいときです。これはa−bがnの倍数であることと同値です。

選択肢ごとの解説

  • 誤り。a+bがnの倍数であることは,余りが等しいこと(衝突)の条件とは一致しません。
  • 正しい。aとbをnで割った余りが等しいこと,すなわちa−bがnの倍数であることが衝突の条件です。
  • 誤り。nがa+bの倍数という条件は,通常n(ハッシュ表の大きさ)よりa+bが大きいため成立しにくく,衝突条件とは異なります。
  • 誤り。nがa−bの倍数という条件は,aとbの余りが等しい条件とは逆の関係になっています。
応用情報技術者の過去問を演習モードで解く