Идеальный хеш для строки с известным количеством ключей

Можно ли получить идеальную хеш-функцию от строк до целых чисел, когда известно количество хешируемых элементов? Под совершенной хэш-функцией я подразумеваю, что вероятность столкновения отсутствует.

В основном я читаю подписи нескольких таблиц из файла (например, идентификатор, имя, адрес). Различные таблицы могут иметь общие атрибуты (например, имя), но на разные позиции (то есть столбцы). Я хотел бы иметь возможность спросить что-то вроде: что такое table1 [«name»]? или table2 [«имя»].

ОБНОВЛЕНИЕ: я предпочел бы научиться делать это самому, чем использовать что-то уже там.

4

Решение

Увидеть GNU Gperf.

GNU gperf — идеальный генератор хеш-функций. Для заданного списка строк он создает хеш-функцию и хеш-таблицу в форме кода на C или C ++ для поиска значения в зависимости от входной строки. Хеш-функция идеальна, что означает, что хеш-таблица не имеет коллизий, а для поиска в хеш-таблице требуется только сравнение одной строки.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]