自然数をキーとするデータを,を用いて管理する。キー x の h(x) を
h(x) = x mod n
とすると,任意のキー a と b が衝突する条件はどれか。ここで,n はハッシュ表の大きさであり,x mod n は x を n で割った余りを表す。
この問の正解率:0.00%(2件)
問題本文
自然数をキーとするデータを,ハッシュ表を用いて管理する。キー 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 の倍数
解説
ハッシュ法では h(x)=x mod n が同じ値になるキー同士が同じ格納位置を争い、これを衝突という。h(a)=h(b) すなわち a mod n = b mod n が成り立つのは、a と b を n で割った余りが等しい、つまり差 a-b が n で割り切れる(n の倍数)ときである。イが正しい。衝突条件の理解はハッシュ表サイズ n の選定やチェイン法・オープンアドレス法の設計判断に直結する。