Свойства хэш-функции
- Consistent (согласованная) — одинаковые ключи должны давать одинаковый хэш.
- Быстродействие (efficient to compute) - вычисление хэш-кода должно быть эффективным и быстрым.
- Равномерность распределения (uniformly distribute the keys) - хэш-коды должны распределяться равномерно по всему диапазону значений. Небольшие изменения во входных значениях должны приводить к значительным изменениям в хэш-коде.
- Ограниченность (области значений) — хэш-функция должна выдавать значения от 0 до m-1, чтобы мы не вылезли за пределы массива (index out of range).
- Нелинейность - хэш-функция должна быть нелинейной, чтобы обеспечить хорошую уникальность и равномерное распределение хэш-кодов.