アルゴリズムとプログラミング
基本情報技術者試験 科目A免除 修了試験 20200126 実施分 問9
16 進数で表される 9 個のデータ 1A,35,3B,54,8E,A1,AF,B2,B3 を順にハッシュ表に入れる。ハッシュ値をハッシュ関数 f(データ) = mod(データ,8) で求めたとき,最初に衝突が起こるのはどのデータか。ここで,mod(a,b) は a を b で割った余りを表す。
答えを選ぶ
出典:基本情報技術者試験 科目A免除 修了試験 20200126 実施分 問9(問題文は IPA の公開問題。解説は当サイト作成)
解説に誤りを見つけたら、解説の誤りを報告してください。
答えと解説を見る
正解:ウ
覚える知識
オープンアドレス法によるハッシュ衝突時の格納位置のトレース
ハッシュ衝突は異なるデータが同じハッシュ値になる現象である。
この問題で必要なこと
mod8で1A=26→2,35=53→5,3B=59→3,54=84→4,8E=142→6,A1=161→1,AF=175→7,B2=178→2で、1Aと衝突。
ひっかけ
16進を10進に直す際の計算ミスや、先に入ったデータとの比較漏れを誘う。
この知識の出題:本試験系 3 回・免除試験 7 回(公開問題での観測値)。頻出知識ランキング170位(全1,254件中)。