自然数をキーとするデータを,を用いて管理する。キー x の h(x) を
h(x) = x mod n
とすると,任意のキー a と b が衝突する条件はどれか。ここで,n はハッシュ表の大きさであり,x mod n は x を n で割った余りを表す。
この問の正解率:61.16%(1,223件)
問題本文
自然数をキーとするデータを,ハッシュ表を用いて管理する。キー x のハッシュ関数 h(x) を h(x) = x mod n とすると,任意のキー a と b が衝突する条件はどれか。ここで,n はハッシュ表の大きさであり,x mod n は x を n で割った余りを表す。
選択肢
ア.a+b が n の倍数
イ.a−b が n の倍数
ウ.n が a+b の倍数
エ.n が a−b の倍数
正解
イ. a−b が n の倍数
解説
衝突(シノニム)とは、異なるキー a と b の格納位置 h(a)=h(b) が一致することを指す。h(x)=x mod n なので衝突条件は a mod n=b mod n、すなわち a と b を n で割った余りが等しいことである。余りが等しいのは差 a−b がちょうど n で割り切れるとき、つまり a−b が n の倍数のときなので、正解は イ である。