メインコンテンツへ
アルゴリズムとプログラミングアルゴリズムとデータ構造

サイズ7のハッシュテーブルでダブルハッシュ法を使用する。h1(k)=k mod 7、h2(k)=1+(k mod 5)。スロット1がすでに占有されている状態でキー36を挿入するとき、最終的に格納されるインデックスはどれか。

ア.インデックス3正解
イ.インデックス2
ウ.インデックス5
エ.インデックス0

解説

ダブルハッシュは「二段階の宝探し」。最初のマップで場所を決め、衝突したら2番目のマップのステップ幅で進む。

なぜ ア が正解か

h1(36)=36 mod 7=1 → スロット1は占有済み → 衝突。h2(36)=1+(36 mod 5)=1+1=2。次の探査位置: (1+1×2) mod 7=3 mod 7=3 → スロット3が空なので格納。答えはインデックス3。

なぜ イ は間違いか

インデックス2は誤り。ダブルハッシュではステップ幅h2=2を使うので(1+2)mod7=3になる。

なぜ ウ は間違いか

インデックス5は誤り。2回目の探査位置(1+2×2)mod7=5になるが、1回の探査で空きが見つかる。

なぜ エ は間違いか

インデックス0は誤り。計算上(1+n×2)mod7でインデックス0になるには複数回の衝突が必要で、スロット3で見つかる。

出典: AI生成問題(学習用)