Хеширование

Минутка размышлений

Untitled

Смысл познать общие принципы, а не зазубрить с точностью до индекса.

Человек не обязан знать все идеально

Еще раз определение

Хеш — это какая-то функция, сопоставляющая объектам какого-то множества числовые значения из ограниченного промежутка.

«Хорошая» хеш-функция:

Обычно хеш-функция не является взаимно однозначной: одному хешу может соответствовать много объектов. Такие функции называют сюръективными.

Untitled

Для некоторых задач удобнее работать с хешами, чем с самими объектами. Пусть даны $n$строк длины $m$, и нас просят $q$ раз проверять произвольные две на равенство. Вместо наивной проверки за O($q \cdot n \cdot m$), мы можем посчитать хеши всех строк, сохранить, и во время ответа на запрос сравнивать два числа, а не две строки.

Хешируемые объекты могут быть самыми разными: строки, изображения, графы, шахматные позиции, просто битовые файлы.

В этом разделе мы в основном сфокусируемся на строках.

Untitled