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
Или коротким