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

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

От Alexander Gusak (2:5020/175.2) к Alex Aka Parasite

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


From: "Alexander Gusak" <agusak@skengstroy.ru>

Sat Aug 22 2009 20:07, Alex Aka Parasite wrote to Alexander Gusak:

Мне эта дискуссия напомнила

- Г-голубчики, - сказал Федор Симеонович озадаченно, разобравшись
в почерках. - Это же п-проблема Бен Б-бецалеля. К-калиостро же доказал,
что она н-не имеет р-решения.
- Мы сами знаем, что она не имеет решения, - сказал Хунта,
немедленно ощетиниваясь. - Мы хотим знать, как ее решать.
- К-как-то ты странно рассуждаешь, К-кристо... К-как же искать
решение, к-когда его нет? Б-бессмыслица какая-то...
- Извини, Теодор, но это ты очень странно рассуждаешь. Бессмыслица
- искать решение, если оно и так есть. Речь идет о том, как поступать с
задачей, которая решения не имеет. Это глубоко принципиальный вопрос,
который, как я вижу, тебе, прикладнику, к сожалению, не доступен.

АБ. Стругацкие. Понедельник начинается в субботу.

AG>> Либо вероятность коллизии равна нулю, именно нулю.
AAP> Это - предпочитаемый вариант. :)
AG>> Hо тогда это не хэш, здесь нужно другое.
AAP> Hапример? Учитывая размеры всего проекта как по кол-ву составляющих, так
AAP> и по обьему на диске вообще.

Любой _уникальный_ идентификатор. Хэш _по определению_ не обеспечивает
уникальности, и используется для ускорения поиска и/или сравнения, а не для
этой цели. Совершенная хэш-функция с однозначным отображением возможна только
на множестве фиксированной и заранее известной мощности (если я еще правильно
помню терминологию).

AG>> При таких последствиях мне на вашем месте не хотелось бы
AG>> заниматься ее высчитыванием и успокаиваться одним только матожиданием.
AAP> Вывод?

Даже если ТЗ составлено таким идиотским образом, и требуется его именно такое
идиотское выполнение, с угрозой таких последствий, то у грамотного инженера
варианта два - отказаться от задачи, провал в которой лишь вопрос времени, или
сделать как надо, объясняя что ТЗ это _не противоречит_.

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

С уважением
Александр Гусак

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

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

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

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

FGHI-url этого письма: area://RU.NETWORKS?msgid=2:5020/175.2+a44168df