Федотов Михаил Игоревич : другие произведения.

Черная дыра

Самиздат: [Регистрация] [Найти] [Рейтинги] [Обсуждения] [Новинки] [Обзоры] [Помощь|Техвопросы]
Ссылки:
Школа кожевенного мастерства: сумки, ремни своими руками

  Черная дыра
  
  Увидел я в рекламе одного нового архиватора слова: "наш архиватор гарантированно сжимает любые файлы". И звездочка со сноской маленькими буковками: "если их размер превышает один байт".
  Прекрасно понимаю, что так не бывает - в институте нам немного рассказывали о принципах, на которых основаны архиваторы - поиск повторяющихся последовательностей и все такое прочее. Сам я, пожалуй, подобное написать не смогу, но хотя бы понимаю, что архиваторы хорошо сжимают, скажем, текст или графику, а если просто сгенерировать файл из случайных байтов, то его размер после упаковки может даже немного увеличиться.
  Но все равно решил попробовать. Скачал архиватор, установил.
  Для пробы сжимаю большой файл. Сжался но ненамного, процентов на десять. Правда, упаковка прошла очень быстро, как будто просто копирование файла. Ну и, понятное дело, распаковался архив тоже быстро и правильно.
  Но все равно обычные архиваторы сжимают гораздо лучше.
  Что меня тогда дернуло повторно сжать архив, не знаю. Но он сжался тоже примерно на десять процентов. Очень странно, обычно с архивами так не получается, они сжимаются очень плохо.
  Стал я пробовать дальше, каждый следующий архив оказывался меньше предыдущего. И, что удивительно, все корректно распаковывалось!
  В конце концов, получил упакованный файл размеров один байт. Дальше его архиватор сжимать, естественно, отказался. И этот архив нормально распаковался! После множества итераций получился тот файл, который был изначально.
  Прямо черная дыра какая-то! Но, в отличие от обычной черной дыры, все можно получить обратно.
  Тогда создал я файл из одного байта - такого же, как в получившемся архиве - и подсунул его архиватору. "Не могу распаковать", - говорит он, - "неправильный архив".
  Сколько дальше я с ним ни возился, ничего больше узнать не удалось.
  Так что плюнул на попытки разобраться и просто написал скриптик, который при помощи странного архиватора сжимает файл до тех пор, пока не получится архив размером в один байт. Работает это достаточно быстро.
  Конечно, важные данные я этим архиватором сжимать не рискую, а для упаковки фильмов и музыки использую - если что, их заново из интернета скачать можно.

Связаться с программистом сайта.

Новые книги авторов СИ, вышедшие из печати:
О.Болдырева "Крадуш. Чужие души" М.Николаев "Вторжение на Землю"

Как попасть в этoт список

Кожевенное мастерство | Сайт "Художники" | Доска об'явлений "Книги"