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

平成25年度 秋期 午前 問7

基礎理論

キーaとbが衝突する条件

自然数をキーとするデータを,ハッシュ表を用いて管理する。キー x のハッシュ関数 h(x) を

h(x) = x mod n

とすると,キー a と b が衝突する条件はどれか。ここで,n はハッシュ表の大きさであり,x mod n は x を n で割った余りを表す。

答えと解説を見る

✓ これが正解イa−b が n の倍数

解説

余りが等しいことは、差がハッシュ表の大きさの倍数と同じです。

設問は、キーを表の大きさで割った余りをハッシュ関数とするとき、二つのキーが衝突する条件を選ばせています。見る軸は一つで、衝突という言葉を定義どおりに式へ直すことです。衝突とは二つのキーが同じ場所に割り当てられることですから、それぞれの余りが等しいということにほかなりません。そこで、二つのキーを表の大きさで割った商と余りの形に書くと、余りが共通なので、二つのキーの差を取ったときに余りの部分が打ち消し合います。残るのは商の差に表の大きさを掛けた値ですから、差は表の大きさで割り切れます。つまり、二つのキーの差が表の大きさの倍数であることが、衝突するための条件です。表の大きさを 10 として数で確かめると、23 と 13 は余りがどちらも 3 で衝突し、差の 10 は確かに倍数です。23 と 43 も余りが 3 で衝突し、差の絶対値 20 も倍数です。一方、23 と 17 は余りが 3 と 7 で衝突せず、差の 6 も倍数ではありません。

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

この問題の用語

出典:平成25年度 秋期 応用情報技術者試験 午前 問7

同じ用語が出る問題

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