基本情報技術者試験(FE) 令和6年度 科目A|第2問 過去問解説「ハッシュ関数と衝突」

※本情報は解説作成時点のもので、閲覧時点では法改正等により情報が変更になっている場合がございます。あらかじめご理解いただければ幸いです。

正解は「D. cとl」です。
ASCIIコードの1の位が同じになる文字同士は、同じハッシュ値となり衝突が発生します。

この記事では、基本情報技術者試験(FE)試験(令和6年度)で出題された第2問「ハッシュ関数と衝突」について、試験対策の観点からわかりやすく解説します。

問題のポイント

ハッシュ値=ASCIIコードの1の位

キーは小文字アルファベット1文字です。ASCIIコードはアルファベット順に連続して割り当てられています。
小文字aのASCIIコードは97であり、以降1ずつ増加します。

ASCIIコードの確認

a=97
b=98
c=99
d=100

l=108
r=114
x=120

ハッシュ値は「1の位」なので、各文字のASCIIコードの1の位を確認します。

  • a(97)→7
  • i(105)→5
  • b(98)→8
  • r(114)→4
  • c(99)→9
  • l(108)→8
  • d(100)→0
  • x(120)→0

衝突の判定

同じ1の位を持つ文字同士が衝突します。

  • aとi → 7と5(衝突しない)
  • bとr → 8と4(衝突しない)
  • cとl → 9と8(衝突しない)
  • dとx → 0と0(衝突する)

したがって、衝突が起こるのは d と x の組合せです。

問われているポイント

この問題では、ASCIIコードの連続性と、ハッシュ関数の計算方法を正しく理解しているかが問われています。
ハッシュ表の基本動作と衝突の概念を押さえておきましょう。

気を付けてほしい点(勘違いしやすいポイント)

  • ASCIIコードはa=97から始まる
  • 「1の位」を見ることを忘れない

補足
ハッシュ値の計算方法を読み違えると簡単に誤答になります。設問条件を丁寧に確認しましょう。

基本情報技術者試験(FE)試験での出題パターン

基本情報技術者試験(FE)試験では、ハッシュ法や探索アルゴリズムに関する問題が頻出です。
衝突の発生条件や処理方法も合わせて理解しておきましょう。

まとめ

  • ハッシュ値はASCIIコードの1の位
  • d(100)とx(120)が衝突する
← 前の解説:基本情報技術者試験(FE) 令和6年度 科目A|第1問 過去問解説「論理演算の真理値表」
次の解説:基本情報技術者試験(FE) 令和6年度 科目A|第3問 過去問解説「キャッシュメモリのヒット率」 →