In Cormen Buch "Introduction to Algorithms" ich, dass Doppel-Hashing lesen (in offener Adressierung) Funktion ist in Form von:Doppel Hashing in offener Adressierung, welche Hash-Funktion und Tabellenlänge
h(k, i) = (h1(k) + i * h2(k)) mod m
wo k ist ein Schlüssel, i ist ein nächster Index im Falle einer Kollision, m ist die Tabellenlänge und hX sind Hash-Funktionen.
Er sagt, dass das Hauptproblem beim Double Hashing ist, alle Indizes in der Tabelle zu verwenden. Um dieses Problem zu lösen, sollten wir setzen m auf die Leistung von 2 und h2 Funktion sollte ungerade Werte zurückgeben. Warum (ich kann ihn nicht erklären sehen)
Wenn h_2 (k) ungerade ist, dann wird h_2 (k) * i kein Vielfaches von m sein, bis i = m. –