基本情報技術者試験 2019年度 = 令和元年度・秋期 午前 問10

 10進法で5桁の数a 1 a 2 a 3 a 4 a 5を、ハッシュ法を用いて配列に格納したい。ハッシュ関数をmod(a 1a 2a 3a 4a 5, 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トップページへ