基本情報技術者試験 2003年度 = 平成15年度・春期 午前 問14

 アルファベット3文字で構成されるキーがある。次の式によってハッシュ値h を決めるとき、キー“SEP”と衝突するのはどれか。ここで、a mod b は、ab で割った余りを表す。

  h =(キーの各アルファベットの順位の総和)mod 27

  アルファベット     順位  
A1
B2
C3
D4
E5
F6
G7
H8
I9
J10
K11
L12
M13
  アルファベット     順位  
N14
O15
P16
Q17
R18
S19
T20
U21
V22
W23
X24
Y25
Z26

 ア APR  イ FEB  ウ JAN  エ NOV

解答

 イ

解説

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

 文字列“SEP”のハッシュ値は、次のように求められます。
  SEPのハッシュ値 = (19 + 5 + 16) mod 27 = 40 mod 27 = 13
 選択肢のハッシュ値を順に求めていきます。
  APRのハッシュ値 = (1 + 16 + 18) mod 27 = 35 mod 27 = 8
  FEBのハッシュ値 = (6 + 5 + 2) mod 27 = 13 mod 27 = 13
これで、選択肢のFEBのハッシュ値がSEPと等しくなり、衝突することが分かります。


BohYoh.comトップページへ