Причина застосування простих чисел - мінімізація зіткнень, коли дані демонструють певні закономірності.
Спочатку спочатку: Якщо дані випадкові, тоді не потрібно простого числа, ви можете виконати операцію з модом проти будь-якого числа, і у вас буде однакова кількість зіткнень для кожного можливого значення модуля.
Але коли дані не випадкові, то трапляються дивні речі. Наприклад, розглянемо числові дані, які завжди кратні 10.
Якщо ми використовуємо mod 4, ми знаходимо:
10 мод 4 = 2
20 мод 4 = 0
30 мод 4 = 2
40 мод 4 = 0
50 мод 4 = 2
Тож із 3 можливих значень модуля (0,1,2,3) зіткнення мають лише 0 і 2, що погано.
Якщо ми будемо використовувати просте число типу 7:
10 мод 7 = 3
20 мод 7 = 6
30 мод 7 = 2
40 мод 7 = 4
50 мод 7 = 1
тощо
Ми також зауважимо, що 5 не є вдалим вибором, але 5 - це головна причина, тому що всі наші ключі кратні 5. Це означає, що ми повинні вибрати просте число, яке не ділить наші ключі, вибираючи велике просте число. зазвичай достатньо.
Тому помилка на стороні повторюваності причин, що використовуються простими числами, - це нейтралізувати дію шаблонів у клавішах на розподіл зіткнень хеш-функції.