アルゴリズムとプログラミング
基本情報技術者試験 科目A免除 修了試験 20140727 実施分 問7
10 進法で 5 桁の数 a1 a2 a3 a4 a5 を,ハッシュ法を用いて配列に格納したい。ハッシュ関数を mod(a1+a2+a3+a4+a5,13)とし,求めたハッシュ値に対応する位置の配列要素に格納する場合,54321 は配列のどの位置に入るか。ここで,mod(x,13)は,x を 13 で割った余りとする。
配列の図: 位置 0, 1, 2, …, 11, 12 の縦に並んだ要素をもつ配列(中間は省略記号 …)。
- ア 1
- イ 2
- ウ 7
- エ 11
出典:基本情報技術者試験 科目A免除 修了試験 20140727 実施分 問7
答えと解説を見る
正解:イ
覚える知識
ハッシュ関数によるハッシュ値計算
ハッシュ法は、キーから関数で求めた値を格納位置とする探索法である。
この問題で必要なこと
各桁の和5+4+3+2+1=15を13で割った余り2が格納位置になる。
ひっかけ
桁の和ではなく別の値で割ったり、余りと商を取り違えると誤る。
この知識の出題:本試験系 5 回・免除試験 11 回(公開問題での観測値)