
![]() |
||
Наши проекты: | Журнал · Discuz!ML · Алгоритмы · Естественные науки · Wiki · DRKB · Помощь проекту |
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | DigiMania | RSS |
[107.23.176.162] |
![]() |
Страницы: (2) 1 [2] все ( Перейти к последнему сообщению ) |
![]() |
Сообщ. #16,
|
|
Существует маленькая вероятность что если 2 одинаковых файла имеют одинаковый размер, дату изменения и имя то они будут различны по содержанию.
"Воля - это то, что заставляет тебя побеждать, когда твой рассудок говорит тебе, что ты повержен" Карлос Кастанеда
|
Сообщ. #17,
|
|
|
Цитата Славян @ Раз так, то постараюсь тоже зайти с несколько боковой стороны: 1. Смотрите, пусть люди хотят сравнить картинки. Алгоритм может быстро пробежаться по файлам, посмотреть размеры картинок и выдать "не равны", если уже размеры разные. Тогда давайте запустим процедуру сравнения файлов. И, скорее всего, окажется, что по-байтное сравнение быстрее, чем расчёт хеша. А если сравнивать не понадобится, а мы считаем это хеш для всех файлов.. --- Кстати, из чего следует, что не будет "коллизий" ? Файлы разные, а хеши одинаковые, и что тогда ? Подпись была выключена в связи с наложенным заземлением.
|
Сообщ. #18,
|
|
|
Цитата ЫукпШ @ Так конечно быстрее! Но суть же в том, что хэши считаются всегда и в фоновом, а проверки нужны редко. И в эти редкие случаи будут "выстреливать" "на ура" случаи совпадения!И, скорее всего, окажется, что по-байтное сравнение быстрее, чем расчёт хеша. А если сравнивать не понадобится, а мы считаем это хеш для всех файлов.. Цитата ЫукпШ @ Не следует. Сие - проблема.Кстати, из чего следует, что не будет "коллизий" ? Цитата ЫукпШ @ Тут надо додумать на каких вариантах будем пренебрегать, а когда важно. Т.е., скажем, если человек песенку сравнил и в ней коллизия, то проиграем ложную, а от него пусть придёт отчёт, что коллизия и надо почётче. А если не пришло, то наверное коллизия ушла в шумы и чёрт с ней. А вот если там какой-то важный системный файл, то можно и тщательнее смотреть.Файлы разные, а хеши одинаковые, и что тогда ? Одним словом, додумать надо детали. ![]() |
Сообщ. #19,
|
|
|
Сравнение хэшей помогает, если файлов больше 2, и только если они не все одинаковые, иначе в конце концов их все равно придётся сравнивать.
Или если проверяется изменение файла. Тогда можно хранить старую копию на медленном носителе, и вообще не читать его, если хэш отличается. В случае длинного хэша можно даже пренебречь малой вероятностью коллизии хэшей при изменении. Если надо сравнить несколько файлов между собой, их, в принципе, можно сравнить кусками за один проход чтения. По времени это может оказаться сравнимым с вычислением хэшей, и последующим сравнением этих кэшей, если хэши окажутся разными. Если хотя бы пара хэшей совпадут, придётся ещё раз перечитать соответствующие файлы, и вариант с хэшами окажется медленнее. Всё написанное выше это всего лишь моё мнение, возможно ошибочное.
|