ハッシュ表の衝突

ハッシュ値はASCIIコードの10進表記の1の位です。二つのASCIIコードの差が10の倍数なら1の位が等しくなり、同じ格納位置に割り当てられて衝突します。 ASCIIコード: 小文字はa=97からz=122まで連続しています。各組を実際のコードと1の位で比較します。 組 ASCIIコード 1の位(ハッシュ値) 衝突 ア a と i 97 と 105 7 と 5 × イ b と r 98 と 114 8 と 4 × ウ c と l 99 と 108 9 と 8 × エ d と x 100 と 120 0 と 0 ○ コードの差が10の倍数(d と x は20)なら1の位が同じになります。アルファベット順で10文字または20文字離れた組が衝突します。 ア: a=97、i=105なので、ハッシュ値は7と5で異なります。 イ: b=98、r=114なので、ハッシュ値は8と4で異なります。 ウ: c=99、l=108なので、ハッシュ値は9と8で異なります。 エ:正解。 d=100、x=120なので、どちらも1の位は0です。同じハッシュ値となって衝突します。

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

出典令和6年度 基本情報技術者試験 科目A 問2
ア
aとi
イ
bとr
ウ
cとl
エ
dとx