第2種情報処理技術者試験 1994年度 = 平成6年度・秋期 午前 問32

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

位置    配列         ┌───────┐  0 │   ア   │    ├───────┤  1 │   イ   │    ├───────┤  2 │   ウ   │    ├───────┤  3 │   エ   │    ├───────┤  4 │   オ   │    └───────┘


解答

 ウ

解説

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

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

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


BohYoh.comトップページへ