Подскажите pls hash-функцию, которая занимала бы мало места и была бы достаточно быстрой.
Задача выглядит следующим образом: есть пакеты данных, которые идентифицируются короткими (4-32 символа длиной) строками ascii. Всего строк может быть несколько тысяч. Хочется сделать такую схему: строка -> hash покороче -> CAM-память -> ... Хэш нужен покороче, чтобы не увеличивать САМ-память, 24 бита было бы хорошо. Первое, что пришло в голову, это сделать хэш вида {5-бит длина строки, 16-бит CRC} или просто вычислять CRC от строки с добавленным в конце байтом длины. Но у меня есть подозрение, что у разных строк CRC будет иногда совпадать, не для хэша он заточен. Может ли уважаемый all порекомендовать что-либо?
--------------------
"Человек - это существо, которое охотнее всего рассуждает о том, в чем меньше всего разбирается." (с) С.Лем
|