過去問解きまくり研究所 ホーム

令和6年度 科目A 問2

アルゴリズム

衝突が起こるキーの組合せ

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

答えと解説を見る

✓ これが正解エdとx

解説

dとxは並び順が20離れ、コードの1の位が同じになります。

コードがアルファベット順に連続して割り当てられているので、並び順で10文字離れた2文字はコードの差が10になり、1の位が一致します。差が20でも同じです。並び順で数えると、dは4番目、xは24番目で、差は20です。よってこの2文字はハッシュ関数の値が同じになり、ハッシュ表の同じ場所を取り合う衝突が起こります。実際の値でも確かめると、ASCII でaは97なので、dは100、xは120で、1の位はどちらも0です。1の位を取り出すハッシュ関数では、コードそのものを知らなくても、並び順の差が10の倍数かどうかで衝突を見分けられます。

ほかの選択肢はなぜ違うのか

この問題の用語

出典:令和6年度 基本情報技術者試験 科目A 問2

同じ用語が出る問題

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)