Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
jenya-100
13 / 13 / 0
Регистрация: 22.10.2010
Сообщений: 72
#1

Хэш-функция - C++

22.10.2010, 15:47. Просмотров 752. Ответов 3
Метки нет (Все метки)

Здравтствуйте! У меня такая проблема. У меня есть текст, и мне нужно каждому слову поставить в соответствие чиселку (например, от 0 до 255) таким образом, что разные слова имееют разные числеки, а одинаковые - одинаковые чиселки. Для этого мне нужно написать хэш-функцию. Ничего умнее, чем тупо сложить все коды всех символов, мне в голову не приходит. Может, кто-нибудь что умное посоветует?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2010, 15:47     Хэш-функция
Посмотрите здесь:

C++ Хэш таблица
Хэш функции C++
C++ ХЭШ таблицы на С++
C++ хэш-функция
Хэш функция C++
C++ Хэш-таблицы
C++ Хэш-таблица
Хэш-таблица C++
Простейшая хэш-функция C++
C++ Хэш таблица
Дефолтная хэш функция C++
C++ Хэш-функция

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Black Fregat
1363 / 993 / 215
Регистрация: 31.05.2009
Сообщений: 4,152
22.10.2010, 16:12     Хэш-функция #2
Если нужно попроще и побыстрее, то сумма Флетчера:
C++
1
2
3
4
5
6
7
int s1 = 0; 
int s2 = 0;
while (havingBytes())
{
  s1 += nextByte();
  s2 += s1;
}
Разрядность счетчиков можно варьировать. Есть ещё сумма Адлера - чуть более продвинутая.

Для стандартных случаев можно взять обычную CRC (16, 32)
Ну и параноидальный случай - всякие криптографические хэши - MD-5, SHA-1 и т.д.
Humanoid
Почетный модератор
9818 / 3816 / 162
Регистрация: 12.06.2008
Сообщений: 11,427
22.10.2010, 16:18     Хэш-функция #3
jenya-100, если сложить буквы, то получится одинаковый результат для слов, где те же самые буквы, но в другом порядке. Лучше использовать CRC... в инете очень много исходников CRC32 (особенно на Си).
jenya-100
13 / 13 / 0
Регистрация: 22.10.2010
Сообщений: 72
23.10.2010, 18:46  [ТС]     Хэш-функция #4
Спасибо!
Yandex
Объявления
23.10.2010, 18:46     Хэш-функция
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru