![]() |
|
|
![]()
|
|
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 4 Всего: 360 |
Приветы!
Интересует вопрос, существует ли такая функция hash для слов w{w1,w2,..wn}, что hash(w1)>hash(w2) <=> w1>w2 .. То есть порядок должен сохранятся и после хэширования. |
|||
|
||||
| comp |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 15.11.2006 Репутация: 1 Всего: 1 |
1я мысль. Если подумать, что есть слово - это ничто иное, как число, в 26й системе счисления(естесвенно, имеется ввиду слово, из букв ангийского алфавита). Можно от этого как-нибудь поплясать...
2я мысль. Моежт подойдёт самое стандартное hesh = sum(w[i] * i)... Т.е. найти сумму следующего вида: ascii_код_символа * его_позиция_в_слове... Не проверял. Такое ощущение, что так нельзя делать... |
|||
|
||||
| Sartorius |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1568 Регистрация: 18.7.2006 Где: Ivory tower Репутация: 1 Всего: 37 |
sergejzr, можно hash(w1) >= hash(w2), все таки хэширование - это отображение в множество..., а иначе свертки не будет.
|
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
на тот случай, если дело касается криптографии:
я бы не советовал использовать такой хеш, т.к. при желании найти строку по нему можно будет использовать алгоритм бисекции, что сильно уменьшит время поиска -------------------- qqq |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 4 Всего: 360 |
Скажем так, мне надо для определённой группы w. То есть числовое пространство множества можно расширить до необходимости. Не совсем... Я думал использовать такое в базах данных. То есть инфа там лежит шифровкой, но все операции доступны. Добавлено @ 15:41 Не получится.. т.к 2*2+3*2 == 2*5 |
|||
|
||||
| esperant0 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 714 Регистрация: 20.5.2005 Репутация: 4 Всего: 14 |
да такая ф-я хещ есть ее еще называют ф-й равенства.
отношение порядко определено как лексокографический порядок f(W)=w -------------------- Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором а затем стерто и которое он - пользователь не мог видеть. |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
хм... только что пришло в голову:
одно из требований (ну или, как минимум, пожеланий) для хеш-функции - близость распределения значений к равномерному так вот сама идея в том, чтобы использовать арифметическое кодирование оно построено как раз на том, чтобы "разравнивать" распределение каждого очередного бита (правда, в случае АК это следует из другого критерия - минимальное среднее количество бит для представления информации) т.е. просто строим статистику букв слова для того, чтобы оценивать вероятности появления той или иной буквы (желательно, на основании предыдущих), и кодируем каждое слово конечно, количества бит будут разными, но их можно обрезать до нужной длины (зависит от выбора пространства результатов хеш-функции) а монотонность соответствия, задаваемого арифметическим кодированием получается из-за самого устройства алгоритма (просто буквы при кодировании расположить в алфавитном порядке) -------------------- qqq |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |