Re[6]: хэш функция для целых чисел
От: c-smile Канада http://terrainformatica.com
Дата: 17.02.03 05:58
Оценка: 4 (1) -1
Здравствуйте, Андрей Тарасевич, Вы писали:

АТ>Если речь идет о хеш-таблицах, то, по определению, применяемая в такой ситуации хеш-функция должна возвращать готовый индекс в таблице. Включает ли в себя способ вычисления этого индекса вычисление остатка от деления на последнем или на каком-либо промежуточном этапе — детали реализации хэш-функции, а не какое-то "дополнительное" действие.


Не должна.

И в общем случае не может быть никак завязана на размер таблицы.

Динамические хеш таблицы ( метод rehash ) например когда размер таблицы изменяется динамичиски или настраивается для каждого конкретного экземпляра.

Стандарт de-facto: хеш функции возвращают dword т.е. значения от 0-2(32).

y:dword = f(x)

Основное назначение хеш функции: отображение (и кстати необязательно необратимое!) множества значений x в y с максимально возможной энтропией y
для конкретного домена значений x.

Приведенная г. menify хеш функция вполне может быть удачной и создавть близкие к хаотическим значения для например IPv4 адресов.

Вот.
Re[7]: хэш функция для целых чисел
От: Sergeem Израиль  
Дата: 18.02.03 08:00
Оценка:
а зачем нужна энтропия, хаотическое распределение для IP адресов?
IP адреса и так имеют довольно хаотический набор значений (зависит
конечно от типа сети, но последний байт — точно, во всяком случае).
Может еще для IPv6 подойдет, но для IPv4 — значения и так до 2^32-1.


Здравствуйте, c-smile, Вы писали:

CS>Здравствуйте, Андрей Тарасевич, Вы писали:


АТ>>Если речь идет о хеш-таблицах, то, по определению, применяемая в такой ситуации хеш-функция должна возвращать готовый индекс в таблице. Включает ли в себя способ вычисления этого индекса вычисление остатка от деления на последнем или на каком-либо промежуточном этапе — детали реализации хэш-функции, а не какое-то "дополнительное" действие.


CS>Не должна.


CS>И в общем случае не может быть никак завязана на размер таблицы.


CS>Динамические хеш таблицы ( метод rehash ) например когда размер таблицы изменяется динамичиски или настраивается для каждого конкретного экземпляра.


CS>Стандарт de-facto: хеш функции возвращают dword т.е. значения от 0-2(32).


CS>y:dword = f(x)


CS>Основное назначение хеш функции: отображение (и кстати необязательно необратимое!) множества значений x в y с максимально возможной энтропией y

CS>для конкретного домена значений x.

CS>Приведенная г. menify хеш функция вполне может быть удачной и создавть близкие к хаотическим значения для например IPv4 адресов.


CS>Вот.
Serge.

Hасколько проще была бы жизнь, если бы она была в исходниках.
Re[8]: хэш функция для целых чисел
От: c-smile Канада http://terrainformatica.com
Дата: 23.02.03 01:37
Оценка: 9 (2)
Здравствуйте, Sergeem, Вы писали:

S>а зачем нужна энтропия, хаотическое распределение для IP адресов?

S>IP адреса и так имеют довольно хаотический набор значений (зависит
S>конечно от типа сети, но последний байт — точно, во всяком случае).

Насчет хаотического я бе не был столь оптимистичен...

Для наглядности: карта где цветом закодированы группы IP адресов интернета.


И насчет последнего байта я бы тоже не был столь оптимистичен...
(например зависит от policy конкретного DHCP в конкретной сетке)
Re[9]: хэш функция для целых чисел
От: DSD Россия http://911.ru/cv
Дата: 27.02.03 01:08
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Здравствуйте, Sergeem, Вы писали:


S>>а зачем нужна энтропия, хаотическое распределение для IP адресов?

S>>IP адреса и так имеют довольно хаотический набор значений (зависит
S>>конечно от типа сети, но последний байт — точно, во всяком случае).

CS>Насчет хаотического я бе не был столь оптимистичен...


CS>Для наглядности: карта где цветом закодированы группы IP адресов интернета.

[кусь-кусь]

CS>И насчет последнего байта я бы тоже не был столь оптимистичен...

CS>(например зависит от policy конкретного DHCP в конкретной сетке)


Насчет IPv4-адресов и их поиска я уже как-то выкладывал: http://rsdn.ru/forum/?mid=163575
Автор: DSD
Дата: 30.12.02

Если нужно поднять быстродействие, можно и хеш на 1-2 первых байта приклеить в голове дерева.
Но уж точно никак не данную хеш-функцию применять....
--
DSD
Re[10]: хэш функция для целых чисел
От: menify Россия  
Дата: 27.02.03 04:49
Оценка:
Здравствуйте, DSD, Вы писали:

DSD>Если нужно поднять быстродействие, можно и хеш на 1-2 первых байта приклеить в голове дерева.

DSD>Но уж точно никак не данную хеш-функцию применять....

Это универсальная хэш-функция, она не учитывает природу.
В этом ее плюс и минус.
Я не спорю, в каждом конкретном случае можно найти более лучший вариант.
Этот вариант — если ты не уверен, или лень думать.
Я сам для хэширования указателей использую — ptr >> 3

Хотя сейчас мне чаще лень думать (эта функция прописана по дефолту).
Всего доброго.
Re[10]: хэш функция для целых чисел
От: c-smile Канада http://terrainformatica.com
Дата: 27.02.03 06:29
Оценка: 7 (1)
Здравствуйте, DSD,

Если Вы серьезно этим делом занимаетесь то вот: http://bei.bof.de/
Там есть исходники и анализ разных hash функций для squid proxy server.

Успехов.
Re: хэш функция для целых чисел
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.03.03 22:22
Оценка:
Здравствуйте, menify, Вы писали:

Универсальный "хороших" хеш-функций небывает. Возможно твоя действительно хороша для некоторого применения, но не для всех.
... << RSDN@Home 1.0 beta 4 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: хэш функция для целых чисел
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.03.03 22:22
Оценка:
Здравствуйте, Kubyshev Andrey, Вы писали:

KA>Хаха, я понял что ты хотел сказать ! Это был антипример ! Только все равно от нее пользы никакой Место ты не сократишь а только увеличишь потому что real values надо хранить, или ты хочешь наложить лимит в 64к указателей ? Ну а если у тебя и атк не много элементов , то поиск по 16 битным значения медленне чем по 32 . Что ты этим выигрываешь кроме размера source кода ?


Извени. А ты точно понимаешь, что такое хеш-таблица и зачем она нужна?
... << RSDN@Home 1.0 beta 4 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: хэш функция для целых чисел
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.03.03 22:22
Оценка:
Здравствуйте, Андрей Тарасевич, Вы писали:

АТ>А "хеш-функция" 'int32' -> 'int32' ценность модет представлять не более чем юмористическую (предлагаю переместить ветку).


Во-во. Причем все это произностися в учительском тоне. Мол "Убери это сообщение и не позорься."

PS

Однозначно в юмор.
... << RSDN@Home 1.0 beta 4 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: хэш функция для целых чисел
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.03.03 22:22
Оценка:
Здравствуйте, Ерусов Дмитрий, Вы писали:

Вообще-то человек предложил хеш для хеш-тиблиц. Это, если кто не знает , к шифрованию имеет очень отдаленное отношение.
... << RSDN@Home 1.0 beta 4 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: хэш функция для целых чисел
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.03.03 22:22
Оценка:
Здравствуйте, Kubyshev Andrey, Вы писали:

KA>да, есть хэши криптографичесие это сюда явно не подходит, есть математический hash которое использоется для поисков, сортировок и прочее. одно из требований к хэшу низкое количество коллизий. Но какие коллизии могут быть если от из 32 бит делает те же самые 32 бита? Ты может не посмотрел на исходник ?


Сортироваок? А можно с этого места по подробнее?
... << RSDN@Home 1.0 beta 4 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.