Как закодировать фразу одним числом?

1 234
Artisan
На сайте с 04.03.2005
Offline
354
#31
Как писал Rusl
Дело в том, что работаю в Фоксе, а там уже есть готовая функция на базе CRC32. Вся проблема в вероятности. Быть может как раз в моем случае она будет вполне приемлема.

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

www.leak.info / ДАРОМ линки конкурентов и забытых доменов
euhenio
На сайте с 21.09.2001
Offline
357
#32
Пытаюсь чистить выборку и удалять дублирующую информацию (точнее дубликаты и почти-дубликаты), с помощью шинглов

-если у CRC32 вероятность коллизии 0.002, как говорили выше, то вероятность слипания шинглов из N слов - соотвественно, что-то вроде 0.002^N. Так что наверное, можно использовать вполне - для предварительного отлова дубликатов. А потом уже подтверждать, что это дубликаты - более ядреными методами.

Хотя Сегалович в своем примере в статье про шинглы явно не CRC32 использовал...

с ув., Евгений Трофименко seo блог Trofimenko.ru ( http://trofimenko.ru/ ) но ыыы мало обновляется... Tools.Promosite.ru - анализатор апдейтов Яндекса (пожертвуйте лимиты на Яндекс.XML! ( https://searchengines.guru/ru/forum/801888/page7#comment_11942489 )) Konvr.ru - увеличение конверсии сайта на 81% за 4 недели ( http://konvr.ru/ )
R
На сайте с 29.04.2003
Offline
37
#33
Как писал euhenio


Хотя Сегалович в своем примере в статье про шинглы явно не CRC32 использовал...

"Существует обширная литература по алгоритмам вычисления контрольных сумм, я упомяну здесь самые известные: fnv, md5, crc. Обычно более-менее все равно, какой из них выбрать, но в любом случае при выборе алгоритма его положительной стороной можно считать хорошее быстродействие."

Вот здесь.

Хотя может быть он лукавит.

Artisan
На сайте с 04.03.2005
Offline
354
#34
Как писал Rusl
Обычно более-менее все равно, какой из них выбрать, но в любом случае при выборе алгоритма его положительной стороной можно считать хорошее быстродействие.

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

AA
На сайте с 16.04.2001
Offline
70
#35

Снова не могу не согласиться с Вами, Artisan. И распределение CRC неравновероятное, и ключевое слово правильное.

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

CRC действительно хорош быстродействием, что в методе шинглов (пересекающихся покрытий) совсем не лишнее.

С уважением, Антонов Александр.
R
На сайте с 29.04.2003
Offline
37
#36
Как писал AlexA
Снова не могу не согласиться с Вами, Artisan. И распределение CRC неравновероятное...
CRC действительно хорош быстродействием, что в методе шинглов (пересекающихся покрытий) совсем не лишнее.

А откуда известно о характере распределения? Имею ввиду, все знают что распределение не подчиняется нормальному закону распределения (надеюсь я правильно понял термин равновероятное), но никто не говорит на чем основано подобное заключение и откуда взялась цифра 0.002.

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

AA
На сайте с 16.04.2001
Offline
70
#37

Цифра 0.002 - экспериментальная, ссылаюсь на сообщение Влада Шабанова при обсуждении хэшей. Оригинал его сообщения, к сожалению найти на форуме не могу.

Равновероятное = равномерное (не нормальное) - идеальный хэш. Если бы было так, то вероятность склейки была бы для CRC32 2^-32, что противоречит результату 0,002.

Собственно, этого достаточно для доказательства (естественно, не математически строгого) неравномерности распределения.

Но, конечно, если разберете алгоритм, будет интересный результат, с удовольствием почитаю.

Artisan
На сайте с 04.03.2005
Offline
354
#38

http://www.repairfaq.org/filipg/LINK/F_crc_v3.html

http://www.repairfaq.org/filipg/LINK/F_crc_v31.html

The basic idea of CRC algorithms is simply to treat the message as an enormous binary number, to divide it by another fixed binary number, and to make the remainder from this division the checksum. Upon receipt of the message, the receiver can perform the same division and compare the remainder with the "checksum" (transmitted remainder).

"fixed binary number" о котором здесь написано и есть магическое число о котором я писал выше а у остатка от деления всегда есть перекос то есть он не равновероятен для случайных исходных данных, но еще раз повторяю что на самом деле все еще хуже и любой хэш алгоритм надо правильно применять и понимать где хэширование может дать результат далекий от ожидаемого.

1 234

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий