IPA過去問ドリル

平成27年度 春期 応用情報技術者試験 午前 問5

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

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

出典:平成27年度 春期 応用情報技術者試験 午前 問5

正解:イ

解説

ハッシュ関数h(x)=x mod nでは,xをnで割った余りが同じ値になるキー同士が衝突します。キーaとbが衝突する条件はa mod n=b mod nであり,これはa−bがnの倍数であることと同値です。

選択肢ごとの解説

  • 誤り。a+bがnの倍数であることは,a mod n=b mod nとは限らず,衝突の条件になりません。
  • 正しい。a mod n=b mod nはa−bがnの倍数であることと同値であり,これが衝突の条件です。
  • 誤り。nがa+bの倍数であることは,衝突条件のa−bがnの倍数とは異なる条件です。
  • 誤り。nがa−bの倍数(a−bがnの約数)であることは,正しい条件(a−bがnの倍数)とは逆の関係です。
応用情報技術者の過去問を演習モードで解く