HOME»基本情報技術者令和元年秋期»午前問10
基本情報技術者令和元年秋期 午前問10
問10
10進法で5桁の数 a1a2a3a4a5 をハッシュ法を用いて配列に格納したい。ハッシュ関数を mod(a1+a2+a3+a4+a5,13) とし,求めたハッシュ値に対応する位置の配列要素に格納する場合,54321は配列のどの位置に入るか。ここで,mod(x,13) は,xを13で割った余りとする。
- 1
- 2
- 7
- 11
- [出題歴]
- 基本情報技術者 H16秋期 問14
- 基本情報技術者 H22秋期 問7
- 基本情報技術者 H25春期 問7
分類
テクノロジ系 » アルゴリズムとプログラミング » データ構造
正解
イ
解説
ハッシュ法とは、ハッシュ関数(引数を一定の規則で変換した値を返す関数)を用いて、探索するデータのキー値からデータの格納アドレスを直接計算する方法です。データの格納場所が一意に決まるので挿入、検索、削除が高速に行える反面、格納に必要なデータ領域が多く必要であるという特徴があります。
この設問ではハッシュ関数が mod(a1+a2+a3+a4+a5,13) であり、a1=5、a2=4、…、a5=1というように54321の各桁が対応するので、式に代入して得られる結果を計算します。mod()は、第1引数を第2引数で割った余りを返します。
mod(5+4+3+2+1,13)=mod(15,13)=2
したがって、データ 54321 が格納されるのは配列中の2の位置となります。
この設問ではハッシュ関数が mod(a1+a2+a3+a4+a5,13) であり、a1=5、a2=4、…、a5=1というように54321の各桁が対応するので、式に代入して得られる結果を計算します。mod()は、第1引数を第2引数で割った余りを返します。
mod(5+4+3+2+1,13)=mod(15,13)=2
したがって、データ 54321 が格納されるのは配列中の2の位置となります。