Выбор множителя для хеш-функции (строки)

Вы должны копировать подписчика каждый раз. В противном случае вы каждый раз изменяете один и тот же объект. Просто используйте s = copy(Subscriber)

14
задан David 19 August 2008 в 20:23
поделиться

3 ответа

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

3
ответ дан Ryan Fox 19 August 2008 в 20:23
поделиться
  • 1
    timeit кажется обещанием! Я объединю его с Geoff' s решение. – pars 11 February 2010 в 16:04

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

1
ответ дан NoNaMe 19 August 2008 в 20:23
поделиться

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

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

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

Извините к не непосредственно отвечают на Ваш вопрос, но нижняя строка - то, что нет действительно никакой потребности записать Вашу собственную хеш-функцию для Строки. С каким языком Вы работаете? Я предположил бы, что существует простой способ вычислить "достаточно хороший" хэш-код.

2
ответ дан Mike Deck 19 August 2008 в 20:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: