Универсальное семейство хеш-функций — различия между версиями
Baev.dm (обсуждение | вклад) |
Baev.dm (обсуждение | вклад) |
||
Строка 3: | Строка 3: | ||
{{Определение | {{Определение | ||
|definition= | |definition= | ||
− | Пусть <tex> H </tex> {{---}} конечное множество хеш-функций, которые отображают пространство ключей <tex> U </tex> в диапазон <tex> {1, 2 .. , m - 1} </tex>. | + | Пусть <tex> H </tex> {{---}} конечное множество хеш-функций, которые отображают пространство ключей <tex> U </tex> в диапазон <tex> \{1, 2 .. , m - 1\} </tex>. |
Такое множество называется '''универсальным''', если для каждой пары ключей <tex> k, l \in U </tex> количество хеш-функций <tex> h \in H </tex>, для которых <tex> h(k) = h(l) </tex> не превышает <tex> |H| / m </tex>. | Такое множество называется '''универсальным''', если для каждой пары ключей <tex> k, l \in U </tex> количество хеш-функций <tex> h \in H </tex>, для которых <tex> h(k) = h(l) </tex> не превышает <tex> |H| / m </tex>. | ||
}} | }} |
Версия 10:19, 15 июня 2011
Универсальное семейство хеш-функций
Качественная хеш-функция удовлетворяет (приближенно) условию простого равномерного хеширования: для каждого ключа, независимо от хеширования других ключей, равновероятно помещение его в любую из
ячеек. Но это условие обычно невозможно проверить, так как распределение вероятностей, с которыми поступают входные данные, как правило, неизвестно. К тому же, вставляемые ключи могут и не быть независимыми. Если злой человек будет умышленно выбирать ключи для хеширования при помощи конкретной хеш-функции, то может получится так, что все ключи будут записанны в одну и ту же ячейку таблицы, что приведет к среднему времени выборки . Таким образом, любая фиксированная хеш-функция становится уязвимой. И единственный эффективный выход из данной ситуации - случайный выбор хеш-функции. Такой подход называется универсальным хешированием. Он гарантирует хорошую производительность в среднем, вне зависимости от данных, выбранных злым человеком.Определение: |
Пусть | — конечное множество хеш-функций, которые отображают пространство ключей в диапазон . Такое множество называется универсальным, если для каждой пары ключей количество хеш-функций , для которых не превышает .