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

令和4年度 秋期 午前 問5

アルゴリズム

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

自然数をキーとするデータを,ハッシュ表を用いて管理する。キー x のハッシュ関数 h(x) を h(x) = x mod n とすると,任意のキー a と b が衝突する条件はどれか。ここで,n はハッシュ表の大きさであり,x mod n は x を n で割った余りを表す。

答えと解説を見る

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

解説

余りが等しい、つまり差が n で割り切れます。

設問は、ハッシュ関数をキーを n で割った余りとしたとき、2 つのキーが衝突する条件を選ばせています。軸になるのは、衝突するとは格納先が同じになること、すなわち 2 つのキーを n で割った余りが等しいことだと読み替える点です。a を商と余りの形で書き、b も同じ余りを持つとすると、a から b を引いた値は商の差に n を掛けた形になります。つまり差が n の倍数であることが、衝突するための条件です。n を 7 として確かめると、10 と 24 はどちらも余りが 3 で同じ場所に入り、差は −14 で 7 の倍数になります。正解は、2 つのキーの差が n の倍数であるという記述です。

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

この問題の用語

出典:令和4年度 秋期 応用情報技術者試験 午前 問5

同じ用語が出る問題

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