基本情報技術者試験 2010年度 = 平成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 │       │    └───────┘


ア 1 イ 2 ウ 7 エ 11

解答



解説

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

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

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


BohYoh.comトップページへ