問10
10進法で5桁の数a1a2a3a4a5を、ハッシュ法を用いて配列に格納したい。ハッシュ関数を mod(a1+a2+a3+a4+a5, 13) とし、求めたハッシュ値に対応する位置の配列要素に格納する場合、54321 は配列のどの位置に入るか。ここで、mod(x, 13)
は、xを13で割った余りとする。
位置 配列
┌─────────┐
0 │ │
├─────────┤
1 │ │
├─────────┤
2 │ │
├─────────┤
︙ │ ︙ │
├─────────┤
11 │ │
├─────────┤
12 │ │
└─────────┘
ア 1 イ 2 ウ 7 エ 11
正解
イ
解説
5桁の数 54321 をハッシュ関数 mod(a1+a2+a3+a4+a5, 13) に当てはめると
a1= 5, a2 = 4, a3 = 3, a4 = 2, a5 = 1 だから、
mod(5+4+3+2+1, 13) = mod(15, 13) = 2 となる。
タグ:ハッシュ関数