powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / хэширование. Вопрос.
3 сообщений из 3, страница 1 из 1
хэширование. Вопрос.
    #33840041
/dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется массив строк (очень много). Нужно создать по каждой строке хэш-код с помощью хэш-функции, причем хэш-функция (неважно какая) должна выдавать хэш-код всего 10 видов (напр., от 0 до 9). Соответсвенно каждая строка в массиве должна будет содержать хэш-код из этих 10 видов (напр., йцк - 2; ew - 4, 457 - 3, wr - 23 и т. д.). Распределение всех строк по хэш-кодам должно быть равномерное.
Кто знает как реализовать хэш-функцию такого типа? Буду премного благодарен.
...
Рейтинг: 0 / 0
хэширование. Вопрос.
    #33840213
/dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь за опечатку, 23 - это опечатка.
Постараюсь написать попонятнее.
Самый главный вопрос у меня состоит в том, чтобы данная хеш-функция не только определяла для каждой строки хеш-код, а чтобы в итоге прогона хеш-функции для всех строк к каждому хеш-коду относилось примерно равное количество строк. Например, имеется 80000 строк. Имеется 10 возможных хеш-кодов (напр, 0,1,2,3,4,5,6,7,8,9). В итоге должно получится, чтобы к каждому хеш-коду было привязано равное количество строк (примерно), т.е. 8000 к 0, 8000 к 1, 8000 к 2 и т.д. Это конечно в идеале. Но желательно, чтобы разброс был не более чем на 2000 (если рассматривать данный пример). Напр., 7000 к 0, 8500 к 1, 9000 к 2 , 7500 к 3 и т.д.
Конечно можно создать какую-либо функцию, которая берет несколько бит из строки и потом брать остаток от деления этих бит на 10, в итоге мы получим привязку всего к 10 хеш-кодам, но привязка будет не равномерной, т.е. 20000 строк будет привязано к хешу - 0, 30000 - к хешу 1, 2000 к 2, 10000 к 3 и т.д. А мне нужно равномерное. Спасибо.
...
Рейтинг: 0 / 0
хэширование. Вопрос.
    #33844612
Gradient (guest)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ты же понимаешь, что будет зависимость от входных строк (подадут тебе на вход половину одинаковых - и плакала твоя равномерность на выходе). Так что годится любая нормальная хеш-функция (MD5, SHA-1 - примеры реализации можно найти в сети) либо собственноручно написанная / измененная аналогичная.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / хэширование. Вопрос.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]