У меня есть около 50 000 слов, которые я хочу сопоставить каждому из них с 16-битным числом, и я ищу хэш-функцию для запуска на j2me.
Чтобы быть более конкретным, я ищу хэш-функцию по следующим критериям:
- несколько (или нет) столкновений
- легкая загрузка процессора
- У меня есть все слова сейчас
- Лавинный эффект не важен, так как речь не идет о безопасности. Это просто справочная таблица.
Я тестировал java Strign.hashCode (), ропотный хеш, jenkins по одному и несколько простых ручных, но все они имеют как минимум 30% коллизий.
Минимальное идеальное хеширование, по-видимому, также сильно загружает процессор для небольшого мобильного телефона.
Кто-нибудь может мне помочь с этим?
примечание: как вы знаете, для алгоритма ропота требуется начальное число, и разные начальные числа имеют разную однородность. Как мне найти семя с минимальными коллизиями?
Заранее спасибо