基本情報技術者試験 過去問解説

ハッシュ関数とは?基本情報技術者試験 令和元年度 科目A 修了認定試験 問9を解説

基本情報技術者試験 令和元年度 科目A 修了認定試験 問9は、ハッシュ関数に関する理解を問う問題です。検索から入っても、問題文、選択肢、正解、解説、各選択肢がなぜ違うかをこのページだけで確認できます。

問題文

16 進数で表される 9 個のデータ 1A、35、3B、54、8E、A1、AF、B2、B3 を順にハッシュ表に入れる。ハッシュ値をハッシュ関数 f(データ) = mod(データ, 8) で求めたとき、最初に衝突が起こるのはどのデータか。ここで、mod(a, b) は a を b で割った余りを表す。

この問題の出題ポイント

  • ハッシュ関数の定義だけでなく、問題文中の条件がどの選択肢に当てはまるかを確認する。
  • 関連タグ: ハッシュ法。

選択肢

  1. 54
  2. A1
  3. B2正解
  4. B3

正解

: B2

解説

ハッシュ値 = データ mod 8。1A→2, 35→5, 3B→3, 54→4, 8E→6, A1→1, AF→7, B2→2(1A と衝突)。順番に格納していくと、B2 を入れる時点で 1A(値 2)と衝突する。

解き方の整理

ハッシュ関数の問題では、選択肢のキーワードだけで判断せず、問題文が示す条件と正解選択肢の説明が一致しているかを見ます。誤答選択肢は、似た用語を混ぜる、主体を入れ替える、目的や範囲を広げすぎる、という形で作られることが多いため、選択肢別解説まで確認しておくと復習効率が上がります。

関連問題

前後の問題

復習を続ける

間違えた問題、苦手タグ、模試履歴を保存して復習する導線を用意しています。広告なしPro、弱点分析、復習リマインダーは段階的に提供予定です。