Rozważmy zestaw kluczy K={0,1,...,100} i tablicę skrótów, gdzie liczba segmentów wynosi m=12 . Ponieważ 3 jest współczynnikiem 12 , klucze, które są wielokrotnościami 3 zostaną zamienione na segmenty, które są wielokrotnościami 3 :
- Klucze {0,12,24,36,...} zostaną zaszyfrowane do segmentu 0 .
- Klucze zostaną zaszyfrowane w segmencie .{3,15,27,39,...}3
- Klucze zostaną zaszyfrowane do segmentu .{6,18,30,42,...}6
- Klucze zostaną zaszyfrowane do segmentu .{9,21,33,45,...}9
Jeśli jest równomiernie rozmieszczone (tzn. Każdy klucz w jest równie prawdopodobne, że wystąpi), to wybór nie jest tak istotny. Ale co się stanie, jeśli nie będzie równomiernie rozłożone? Wyobraź sobie, że najbardziej prawdopodobne są klucze wielokrotności . W takim przypadku wszystkie segmenty, które nie są wielokrotnościami będą puste z dużym prawdopodobieństwem (co jest naprawdę złe pod względem wydajności tabeli skrótów).KKmK33
Ta sytuacja jest bardziej powszechna, niż może się wydawać. Wyobraź sobie na przykład, że śledzisz obiekty w oparciu o miejsce ich przechowywania w pamięci. Jeśli rozmiar słowa twojego komputera wynosi cztery bajty, będziesz mieszał klucze, które są wielokrotnościami . Nie trzeba dodawać, że wybranie jako wielokrotności byłoby okropnym wyborem: miałbyś całkowicie puste wiadra, a wszystkie klucze zderzyłyby się z pozostałymi wiadrami .4m43m/4m/4
Ogólnie:
Każdy klucz w który dzieli wspólny czynnik z liczbą segmentów zostanie skrócony do segmentu będącego wielokrotnością tego czynnika.Km
W związku z tym, aby zminimalizować kolizji, to ważne jest, aby zmniejszyć ilość czynników wspólnych pomiędzy i elementów . Jak można to osiągnąć? Wybierając aby być liczbą, która ma bardzo mało czynników: liczba pierwsza .mKm