2011-07-08 10 views
5

Nie do końca rozumiem, jak działa uniwersalny hasz. Na przykład, kiedy wstawiam element do mojego tablicy mieszającej, muszę wybrać funkcję losową z mojej uniwersalnej rodziny funkcji skrótu. Teraz chcę odzyskać przedmiot. W jaki sposób mój tablica asocjacyjna będzie znała funkcję, której ma używać do obliczania wartości mieszania?Powszechne mieszanie

+0

Jakiego języka używasz? – Gerben

+0

@ Gerben: Brak. To jest pytanie koncepcyjne. – ryyst

Odpowiedz

5

Ponieważ będziesz używać tej samej funkcji mieszania dla wszystkich elementów w tabeli.

+0

Masz na myśli, że (losowy) wybór funkcji mieszającej jest dokonywany w czasie budowy, a nie w każdej operacji wstawiania? –

+1

@iuliux: Prawidłowo. Sól, jeśli jest używana, może się różnić (i będzie przechowywana wraz z wkładką), ale algorytm będzie taki sam. –

+0

Nadal nie rozumiem, jak odzyskać numer, który zahaczyliśmy za pomocą losowej funkcji skrótu. – user65165

2

Która funkcja hash jest używana jest losowa tylko w tym sensie, że nie jest przewidywalna przez przeciwnika, ale wybór jest funkcją klucza. Jest miło napisać pod adresem http://www.cs.ucsb.edu/~suri/cs130a/Hashing.txt Metoda macierzowa jest łatwiejsza do zrozumienia niż inne metody ...

+0

Dowolny nowszy link? Jest teraz zepsuty. –