- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Дело в том, что работаю в Фоксе, а там уже есть готовая функция на базе CRC32. Вся проблема в вероятности. Быть может как раз в моем случае она будет вполне приемлема.
Без полной постановки задачи советовать что то по этому поводу нет смысла, это получается как в сказке пойди туда не знаю куда и принеси то не знаю что, и дело даже не столько в функции для хэширования сколько в правильности ее применения.
-если у CRC32 вероятность коллизии 0.002, как говорили выше, то вероятность слипания шинглов из N слов - соотвественно, что-то вроде 0.002^N. Так что наверное, можно использовать вполне - для предварительного отлова дубликатов. А потом уже подтверждать, что это дубликаты - более ядреными методами.
Хотя Сегалович в своем примере в статье про шинглы явно не CRC32 использовал...
Хотя Сегалович в своем примере в статье про шинглы явно не CRC32 использовал...
"Существует обширная литература по алгоритмам вычисления контрольных сумм, я упомяну здесь самые известные: fnv, md5, crc. Обычно более-менее все равно, какой из них выбрать, но в любом случае при выборе алгоритма его положительной стороной можно считать хорошее быстродействие."
Вот здесь.
Хотя может быть он лукавит.
Обычно более-менее все равно, какой из них выбрать, но в любом случае при выборе алгоритма его положительной стороной можно считать хорошее быстродействие.
Про скорость я уже писал выше а ключевое слово здесь "обычно" и автор совсем не лукавит а правильно понимает задачу но вот где именно это "обычно" не может применяться как раз и есть знания которые не для широкой публики.
Снова не могу не согласиться с Вами, Artisan. И распределение CRC неравновероятное, и ключевое слово правильное.
Для начала обычно принимается, что задача обычная и решается обычными известными и очевидными методами, а вот если они не проходят, тогда уже можно пытаться внести модификации в велосипед.
CRC действительно хорош быстродействием, что в методе шинглов (пересекающихся покрытий) совсем не лишнее.
Снова не могу не согласиться с Вами, Artisan. И распределение CRC неравновероятное...
CRC действительно хорош быстродействием, что в методе шинглов (пересекающихся покрытий) совсем не лишнее.
А откуда известно о характере распределения? Имею ввиду, все знают что распределение не подчиняется нормальному закону распределения (надеюсь я правильно понял термин равновероятное), но никто не говорит на чем основано подобное заключение и откуда взялась цифра 0.002.
В принципе, не такая большая проблема выяснить все самому, но не очень хочется (если говорить честно) разбирать алгоритм по косточкам, только для того, чтобы посчитать вероятность (хотя, если не найду выкладок, все же скорее всего придется).
Цифра 0.002 - экспериментальная, ссылаюсь на сообщение Влада Шабанова при обсуждении хэшей. Оригинал его сообщения, к сожалению найти на форуме не могу.
Равновероятное = равномерное (не нормальное) - идеальный хэш. Если бы было так, то вероятность склейки была бы для CRC32 2^-32, что противоречит результату 0,002.
Собственно, этого достаточно для доказательства (естественно, не математически строгого) неравномерности распределения.
Но, конечно, если разберете алгоритм, будет интересный результат, с удовольствием почитаю.
http://www.repairfaq.org/filipg/LINK/F_crc_v3.html
http://www.repairfaq.org/filipg/LINK/F_crc_v31.html
"fixed binary number" о котором здесь написано и есть магическое число о котором я писал выше а у остатка от деления всегда есть перекос то есть он не равновероятен для случайных исходных данных, но еще раз повторяю что на самом деле все еще хуже и любой хэш алгоритм надо правильно применять и понимать где хэширование может дать результат далекий от ожидаемого.