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

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

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

出典:基本情報技術者試験 科目A免除 修了試験 20171210 実施分 問7(問題文は IPA の公開問題。解説は当サイト作成)

答えと解説を見る

正解:エ

覚える知識

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

ハッシュ関数の値が同じキー同士は同じ格納位置になり、衝突する。

この問題で必要なこと

小文字aのASCIIは97で、a〜zは97〜122に連続。1の位が同じ文字が衝突。dは100、xは120で1の位が0同士。

ひっかけ

aとi(97,105)は7と5、bとr(98,114)は8と4、cとl(99,108)は9と8で、いずれも1の位が異なる。

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

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

同じ知識の過去問