---
Пока что я пользуюсь чем-то подобным
trunc(a*(ord(s[1]))+b*(ord(s[length(s)])))-k
Такая функция не имеет коллизий, занимает не много памяти (134 ячейки на 34 слова), но, как мне кажется работает медленно.
---
Может, кто сталкивался с разработкой хэш - функций для строк и готов поделиться опытом.
Таблица слов известна (см. table.txt)