平成23年度 特別 応用情報技術者試験 午前 問8
テクノロジ/アルゴリズムキーが小文字のアルファベット1文字(a,b,…,zのいずれか)であるデータを,大きさが10のハッシュ表に格納する。ハッシュ関数として,アルファベットのASCIIコードを10進表記法で表したときの1の位の数を用いることにする。衝突が起こるキーの組合せはどれか。ASCIIコードでは,昇順に連続した2進数が,アルファベット順にコードとして割り当てられている。
出典:平成23年度 特別 応用情報技術者試験 午前 問8
- アaとi
- イbとr
- ウcとl
- エdとx
正解:エ
解説
ASCIIコードはa=97から始まり,アルファベット順に1ずつ増加します。ハッシュ値は10進コードの1の位なので,コード差が10の倍数であるキーどうしが衝突します。d(100)とx(120)はコード差が20(10の倍数)で,1の位がともに0になるため衝突します。
選択肢ごとの解説
- ア誤り。aは97(1の位7),iは105(1の位5)で一致しません。
- イ誤り。bは98(1の位8),rは114(1の位4)で一致しません。
- ウ誤り。cは99(1の位9),lは108(1の位8)で一致しません。
- エ正しい。dは100(1の位0),xは120(1の位0)で1の位が一致するため,ハッシュ値が衝突します。