アルゴリズムとプログラミング
基本情報技術者試験 科目A免除 修了試験 20180722 実施分 問6
10進法で5桁の数 a₁ a₂ a₃ a₄ a₅ を,ハッシュ法を用いて配列に格納したい。ハッシュ関数を mod(a₁+a₂+a₃+a₄+a₅,13)とし,求めたハッシュ値に対応する位置の配列要素に格納する場合,54321は配列のどの位置に入るか。ここで,mod(x,13)は,xを13で割った余りとする。
配列の図: 位置 0, 1, 2, …, 11, 12 の13個の空の要素が縦に並ぶ(見出しは「位置」「配列」)。
- ア 1
- イ 2
- ウ 7
- エ 11
出典:基本情報技術者試験 科目A免除 修了試験 20180722 実施分 問6
答えと解説を見る
正解:イ
覚える知識
ハッシュ関数によるハッシュ値計算
ハッシュ値は、キーに対しハッシュ関数を適用した結果で、格納位置を決める値である。
この問題で必要なこと
54321の各桁和は15で、13で割った余りは2。位置2に格納される。
ひっかけ
桁和ではなく数そのものを13で割る誤り(結果が7などになる)。
この知識の出題:本試験系 5 回・免除試験 11 回(公開問題での観測値)