アルゴリズムとプログラミング

平成22年度 秋期 基本情報技術者試験 午前 問7

5 けたの数 a1 a2 a3 a4 a5 を,ハッシュ法を用いて配列に格納したい。ハッシュ関数を mod(a1+a2+a3+a4+a5,13) とし,求めたハッシュ値に対応する位置の配列要素に格納する場合,54321 は次の配列のどの位置に入るか。ここで,mod(x,13) の値は,x を 13 で割った余りとする。
配列の図: 位置 0, 1, 2, …, 11, 12 の縦に並んだ空の配列要素(0,1,2 の次は省略記号,11,12 で終わる)。
  • ア 1
  • イ 2
  • ウ 7
  • エ 11

出典:平成22年度 秋期 基本情報技術者試験 午前 問7

答えと解説を見る

正解:イ

覚える知識

ハッシュ関数によるハッシュ値計算

ハッシュ関数は、キーから決まる値を計算して格納位置(ハッシュ値)を求める関数であり、ここでは桁和を13で割った余りを用いる。

この問題で必要なこと

54321の各桁の和は15で、15 mod 13=2となるため位置2に格納される。

ひっかけ

桁和を15のまま位置とする、または各桁を別の方法で処理して誤った位置を選ばせる。

この知識の出題:本試験系 5 回・免除試験 11 回(公開問題での観測値)

この知識をアプリで解いて覚える レッスン「ハッシュ法と衝突の扱い」で学ぶ

同じ知識の過去問