на главнуюВсе эхи RU.NETWORKS
войти ?

Re^3: Посоветовать хэш

От Yan Alexandrovsky (2:5020/400) к Alex Aka Parasite

В ответ на Заголовок предыдущего сообщения в треде (Имя Автора)


From: "Yan Alexandrovsky" <yan@me.ru>

Thu Aug 27 2009 22:59, Alex Aka Parasite wrote to Yan Alexandrovsky:

YA>> 2. для гарантированного сравнения требуется, что бы твой "хеш" (запись
YA>> в базе) была эквивалентна содержимому файла.
AAP> Hе кажется ли тебе, что такое решение обладает огромной избыточностью?

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

Hапример... если у нас там только русский текст и пробелы и знаки пунктуации
нам пофиг, то мы можем сначала удалить все, кроме букв, перевести их в 1
регистр... возможно даже свести кол-во букв к круглому числу 32 и кодировать
каждый символ текста 5 битами, а не 8. Либо даже выкинуть все гласные из
текста... на первом этапе... Hу это так, в качестве примера.

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


Кстати, положенный в базу контент, примененный к контенту 32битный хэш и
построенный индекс по хэшу даст тебе возможно самый быстрый вариант для
сравнения.

Ян

--- ifmail v.2.15dev5.4
* Origin: FidoNet Online - http://www.fido-online.com (2:5020/400)

Ответы на это письмо:

From: Username
Заголовок следующего сообщения в треде может быть длинным и его придется перенести на новую строку

From: Username
Или коротким

FGHI-url этого письма: area://RU.NETWORKS?msgid=<1187352688@www.fido-online.com>+6025f566