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

平成23年度 秋期 午前 問5

基礎理論

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

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

h(x) = x mod n

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

答えと解説を見る

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

解説

余りが等しいことを式に直すと差が残ります。

ハッシュ表では、キーをハッシュ関数に通して得た値を置き場所の番号として使います。この設問のハッシュ関数は、キーを表の大きさで割った余りを返すものです。衝突とは、異なる二つのキーが同じ置き場所に割り当てられてしまうことですから、条件は、二つのキーを表の大きさで割った余りが等しい、と言い換えられます。ここから式を作ります。二つのキーを、それぞれ表の大きさの整数倍に共通の余りを足した形で書きます。この二つの差をとると共通の余りが打ち消し合い、表の大きさの整数倍だけが残ります。つまり、二つのキーの差が表の大きさで割り切れることが条件です。具体的な数でも確かめられます。表の大きさを 10 とすると、23 と 43 はどちらも余りが 3 で同じ場所に入り、差の 20 は 10 で割り切れます。読むときに気をつけたいのは、どちらがどちらの倍数かという向きです。倍数という語は二つの数の順序で意味が変わってしまうので、条件をいったん式に直してから選択肢の並びに当て直すと迷いません。なお衝突そのものは避けられないので、実際の仕組みでは起きた後の始末を用意します。

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

この問題の用語

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

同じ用語が出る問題

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