Розглянемо набір ключів K={0,1,...,100} та хеш-таблицю, де кількість відра m=12 . Оскільки 3 є коефіцієнтом 12 , клавіші, кратні 3 будуть розміщені у відра, кратні 3 :
- Ключі {0,12,24,36,...} будуть відмічені до відра 0 .
- Ключі будуть розміщені у відро .{3,15,27,39,...}3
- Ключі будуть розміщені у відро .{6,18,30,42,...}6
- Ключі будуть розміщені у відро .{9,21,33,45,...}9
Якщо розподілено рівномірно (тобто, кожен ключ у однаковою мірою трапляється), то вибір не є настільки критичним. Але що станеться, якщо не рівномірно розподілений? Уявіть, що ключі, які, найімовірніше, трапляються - кратні . У цьому випадку всі відра, не кратні будуть порожніми з великою ймовірністю (що дійсно погано з точки зору продуктивності хеш-таблиці).KKmK33
Ця ситуація більш поширена, як може здатися. Уявіть, наприклад, що ви відстежуєте об’єкти залежно від місця їх зберігання в пам'яті. Якщо розмір слова вашого комп’ютера становить чотири байти, то у вас будуть хеширующие ключі, кратні . Зайве говорити, що вибір для кратності був би жахливим вибором: у вас відра повністю порожні, а всі ваші ключі стикаються в решті відра.4m43m/4m/4
Загалом:
Кожна клавіша яка поділяє загальний коефіцієнт із кількістю відра буде хеширована до відра, кратного цього коефіцієнта.Km
Тому, щоб звести до мінімуму зіткнень, важливо , щоб зменшити кількість загальних факторів між і елементами . Як цього можна досягти? Вибравши число, яке має дуже мало факторів: просте число .mKm