アルゴリズムとプログラミング

基本情報技術者試験 科目A免除 修了試験 20191208 実施分 問9

キーが小文字のアルファベット1文字(a,b,...,z のいずれか)であるデータを,大きさが10のハッシュ表に格納する。ハッシュ関数として,アルファベットの ASCII コードを10進表記法で表したときの1の位の数を用いることにする。衝突が起こるキーの組合せはどれか。ASCII コードでは,昇順に連続した2進数が,アルファベット順にコードとして割り当てられている。
  • ア a と i
  • イ b と r
  • ウ c と l
  • エ d と x

出典:基本情報技術者試験 科目A免除 修了試験 20191208 実施分 問9

答えと解説を見る

正解:エ

覚える知識

ハッシュ関数の衝突判定(ASCIIコード利用)

異なるキーが同じハッシュ値になることを衝突という。

この問題で必要なこと

aは97なので文字コード10進の1の位は a=7,b=8,c=9,d=0,...,i=5,l=8,r=4,x=0。dとxがともに0で衝突する。

ひっかけ

aの位置を取り違えると衝突するペアを誤算する。

この知識の出題:本試験系 1 回・免除試験 2 回(公開問題での観測値)

この知識をアプリで解いて覚える レッスン「ハッシュ法と衝突の扱い」で学ぶ

同じ知識の過去問