自然数をキーとするデータを,を用いて管理する。キー x の h(x)を
h(x)= x mod n
とすると,任意のキー a と b が衝突する条件はどれか。ここで,n はハッシュ表の大きさであり,x mod n は x を n で割った余りを表す。
この問の正解率:64.96%(779件)
問題本文
自然数をキーとするデータを,ハッシュ表を用いて管理する。キー 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(a)=h(b)、すなわち a mod n = b mod n となる条件を求める問題である。2 数を n で割った余りが等しいということは、その差 a−b が n でちょうど割り切れること、つまり a−b が n の倍数であることと同値である。よって正解はイである。具体例として n=5 のとき a=13、b=3 は差 10 が 5 の倍数で、ともに余り 3 で衝突することからも確認できる。