Эффективные хэш-функции
2006-06-15 22:31Хэш-функция - это такой алгоритм, который для некоторой текстовой строки вычисляет число. Хитрость в том, чтобы числа получались не очень большие, и для разных строк разные.
Собрал я в кучу несколько вариантов и потестировал. Один из вариантов - самопальный, придуманный в далеком студенчестве. Оказывается, неплохо работает.
Собрал я в кучу несколько вариантов и потестировал. Один из вариантов - самопальный, придуманный в далеком студенчестве. Оказывается, неплохо работает.

no subject
Date: 2006-06-15 18:55 (UTC)no subject
Date: 2006-06-15 19:58 (UTC)Кстати, хэш-функцию я изобретал для ассемблера БЭСМ-6. Для поиска имен в таблице. Воистину - программы живут дольше, чем машины. :)
no subject
Date: 2006-06-15 20:15 (UTC)no subject
Date: 2006-06-16 07:26 (UTC)no subject
Date: 2006-06-16 08:16 (UTC)no subject
Date: 2006-06-16 08:20 (UTC)no subject
Date: 2006-06-16 08:54 (UTC)Интересно, а как это будет по-русски? Есть такой термин в мат.физике - устойчивость. Это когда при малом изменении входных параметров результат тоже меняется несильно. А avalanche - это строго наоборот.
no subject
Date: 2006-06-16 07:24 (UTC)В lookup3 нет умножения, вместо него на каждый байт приходится одно сложение и один сдвиг (в среднем). Плюс прочие навороты - на коротких строках эффективность снижается.
no subject
Date: 2006-06-16 15:46 (UTC)Всего один сдвиг и сложение, а по конфликтам в два раза лучшее остальных. Или я чего-то не дотумкиваю?
no subject
Date: 2006-06-17 00:26 (UTC)no subject
Date: 2006-06-17 00:28 (UTC)no subject
Date: 2006-06-17 09:36 (UTC)Все-таки распределение у всех достаточно равномерое.
no subject
Date: 2006-06-17 21:52 (UTC)