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

令和6年度 秋期 午前 問6

アルゴリズム

ハッシュ関数に関する問題

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

答えと解説を見る

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

解説

余りが等しいことは差が割り切れることです。

設問は、キーを表の大きさで割った余りを置き場所とするハッシュ関数のもとで、二つのキーが衝突する条件を選ばせています。衝突するとは、二つのキーが同じ置き場所に落ちること、すなわち表の大きさで割った余りが等しいことです。ある数を割った余りが等しい二つの数は、その差がちょうど割り切れます。逆に差が割り切れるなら余りは等しくなります。したがって条件は、二つのキーの差が表の大きさの倍数であることです。表の大きさを 7 として確かめます。10 と 3 は余りがどちらも 3 で同じ場所に落ち、差の 7 は 7 で割り切れます。10 と 5 は余りが 3 と 5 で別の場所に落ち、差の 5 は 7 で割り切れません。ここで気をつけたいのは、二つのキーを足すのか引くのか、そしてどちらがどちらで割り切れるのかという向きです。倍数という言い方は、前に置いた数が後ろの数で割り切れることを表すので、前後を取り違えると条件が反対になります。

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

この問題の用語

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

同じ用語が出る問題

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