Сведения о вопросе

FromRussia

17:01, 16th August, 2020

Теги

Выбор множителя для функции (string) hash

Просмотров: 494   Ответов: 3

У вас есть какие-либо советы/правила по выбору множителя для использования в (мультипликативной) функции hash. Функция вычисляет значение hash строки.



  Сведения об ответе

baggs

09:37, 4th August, 2020

Вы хотите использовать что-то относительно простое по размеру вашего набора. Таким образом, когда вы будете петлять вокруг, вы не будете в конечном итоге на тех же числах, которые вы только что попробовали.


  Сведения об ответе

SILA

01:09, 26th August, 2020

Недавно у меня была интересная дискуссия с коллегой о функции hash. Наши выводы были следующими:

Если вам действительно нужно написать хорошую функцию hash, которая минимизирует коллизии больше, чем реализации по умолчанию, доступные в стандартных языках, вам нужна высшая степень по математике.

Если вы пишете приложения, в которых пользовательская функция hash заметно повысит производительность вашего приложения, вы-Google, и у вас есть много математики PhDs, чтобы сделать эту работу.

Извините, что не отвечаю прямо на ваш вопрос, но суть в том, что вам действительно не нужно писать свою собственную функцию hash для String. С каким языком вы работаете? Я бы предположил, что есть простой способ вычислить код "good enough" hash.


  Сведения об ответе

lats

00:41, 6th August, 2020

Исторически 33 кажется популярным выбором, и он имеет тенденцию работать довольно хорошо. Хотя никто не знает почему. Для более подробной информации смотрите здесь


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться