第2種情報処理技術者試験 1997年度 = 平成9年度・春期 午前 問8

 5けたの数字(a1 a2 a3 a4 a5)をハッシュ法を用いて配列に格納したい。ハッシュ関数をmod(a1+a2+a3+a4+a5, 13)とし、求めたハッシュ値に対応する位置の配列要素に格納する場合、54321は次の配列のどの位置に入るか。ここで、mod(x, 13)の値は、xを13で割った余りとする。

位置    配列       ┌─────┐  0 │     │    ├─────┤  1 │     │    ├─────┤  2 │     │    ├─────┤    │     │    │  :  │    │     │    ├─────┤ 11 │     │    ├─────┤ 12 │     │    └─────┘


 ア 1  イ 2  ウ 7  エ 11

解答

 イ

解説

 ハッシュ法は、キー値に対して何らかの変換関数を適用することによって、そのデータを格納する配列の添字を求める手法です。なお、変換関数のことをハッシュ関数と呼びます。

  キー値 → ハッシュ関数 → 添字

 本問のハッシュ関数は単純であり、キー値の各桁の合計を13で割ったあまりを格納すべき配列の添字とするものです。5+4+3+2+1は15であり、その15を13で割った剰余は2です。したがって、54321は配列の添字2の位置に格納されることになります。


BohYoh.comトップページへ