2019年 秋期 基本情報技術者 午前 問10

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

 ア  1  イ  2  ウ  7  エ  11


答え イ


解説
求めるのが54321の位置なので、a1=5、a2=4、a3=3、a4=2、a5=1について、ハッシュ値の計算を行うと
 mod(a1 + a2 + a3 + a4 + a5, 13) = mod(5+4+3+2+1, 13) = mod(15, 13) = 2
(イ)になる。


キーワード
・ハッシュ関数

キーワードの解説
  • ハッシュ関数
    与えられたデータを一定のデータの要約を出力する処理のことで、ハッシュ関数によって得られた値をハッシュ値といいます。
    ハッシュ関数の特徴として「似たデータのハッシュ値は似ていない」「生成されるハッシュ値に偏りがない」「ハッシュ値から元のデータに戻せない(不可逆性)」などがあります。

もっと、「ハッシュ関数」について調べてみよう。

戻る 一覧へ 次へ