От Alexander Gusak (2:5020/175.2) к Alex Mizrahi
В ответ на Заголовок предыдущего сообщения в треде (Имя Автора)
AM> Если отбросить шелуху про мегасервер на перле, нужно найти такую хэш
AM> функцию, которая будучи применена к двум файлам (определённого размера
AM> и т.д.) даст совпадающие значения тогда и только тогда когда эти
AM> файлы совпадают. Всё.
AM> Подмножество того что лежит в базе данных, грубо говоря, соотносится
AM> с тем сколько раз эту функцию применяют, но не к чему её применяют.
AM> Т.о. состав базы и даже её наличие к функции отношения не имеет.
AM> Hу представь что в базе хэш всего одного файла. Потом нашли какой-то
AM> ещё файл, загнали в базу. Потом нашли ещё один, и проверяют есть
AM> ли он в базе. И что, то что функция применена всего три раза может
AM> как-то помочь избежать коллизии?
AM> Если хэш-функция не является биективной функцией ДЛЯ ИСХОДHОГО МHОЖЕСТВА
AM> (того где 2^81920), то существует большая нуля вероятность коллизии.
AG>> По определению, perfect hash функция должна отображать множество S на
AG>> множество целых чисел. В определении не сказано, что это должны быть
AG>> _маленькие_ целые числа :)
AM> В английской википедии приводится такое определение хэш-функции:
AM> A hash function is any well-defined procedure or mathematical function
AM> which
AM> converts a large, possibly variable-sized amount of data into a small
AM> datum,
AM> usually a single integer that may serve as an index into an array.
AM> Понятное дело, это не формальное определение, но тем не менее...
--- ifmail v.2.15dev5
* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)
Ответы на это письмо: