Сжатие Windows: файлы, папки и диски. Ошибки сжатия

Средства «Управление дисками» (Disk Management) можно уменьшить объем тома жесткого диска для создания нового раздела.

В состав Windows 7 входит несколько инструментов для управления конфигурацией компьютера и различных аспектов операционной системы. Иногда бывает необходимо уменьшить объем тома - распределенного пространства на жестком диске, чтобы высвободить место для создания еще одного раздела. До недавних пор для этого пришлось бы использовать сторонние утилиты, но с появлением встроенного в Windows 7 средства «Управление дисками» потребность в установке специального ПО отпала.

Сжатие тома

Для начала нужно запустить средство «Управление дисками» с правами администратора. Откройте меню «Пуск» (Start), введите в строке поиска «diskmgmt.msc» без кавычек, нажмите на ссылке «diskmgmt» в результатах поиска правой кнопкой мыши и выберите опцию «Запуск от имени администратора» (Run as Administrator) из контекстного меню (рис. A).

Рисунок A. Запустите средство «Управление дисками» с правами администратора.

Откроется окно, показанное на рис. B.


Рисунок B. Окно средства «Управление дисками».

Как видите, на моем компьютере имеется раздел для восстановления данных, системный раздел и раздел «Data». Системный раздел лучше не трогать, поэтому для примера давайте сожмем раздел «Data (D:)».

Нажмите на разделе, который хотите сжать, правой кнопкой мыши и выберите опцию «Сжать том» (Shrink Volume, рис. C).


Рисунок C. Из контекстного меню выберите опцию «Сжать том».

Системе потребуется несколько секунд на анализ диска, по результатам которого появится диалоговое окно, показанное на рис. D.


Рисунок D. По результатам анализа выводится диалоговое окно с общей информацией о томе.

В этом окне можно изменять значение только в поле «Размер сжимаемого пространства (МБ)» (Enter the Amount of Space to Shrink in MB). Для примера уменьшим том «D:» на 5000 Мбайт (5 Гбайт), как показано на рис. E. Когда будете готовы, нажмите кнопку «Сжать».


Рисунок E. Сожмите том на 5000 Мбайт.

По завершении операции на жестком диске появится новое нераспределенное пространство (рис. F). Его реальный объем будет чуть меньше, чем было указано при сжатии, поскольку небольшая часть этого пространства будет отведена для файловой системы Windows.


Рисунок F. Новое нераспределенное пространство.

Использование нераспределенного пространства

Теперь нужно создать на нераспределенном пространстве раздел, который операционная система сможет использовать. Это совсем не сложно, но делается в несколько этапов, так что о создании нового тома я расскажу в следующей статье.

Времена архиваторов постепенно заканчиваются и с каждым годом, пользователи всё реже сжимают информацию.

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

По привычке или из-за своих переживаний о лишнем занимаемом месте на диске, некоторые всё же продолжают сжимать данные, но это не всегда работает. Почему не сжимаются файлы архиватором? Дело в том, что некоторые данные вообще не имеет смысла пытаться сжимать, так как это невозможно.

Какие файлы не сжимаются архиваторами?

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

Сработать такой метод может только в том случае, если второе сжатие производится с более свежего софта.

Что касается музыки и видео файлов, то их вообще можно не сжимать. Видеозаписи по умолчанию сжимаются кодеками-архиваторами, поэтому их добавление в архив не поможет сократить объем занимаемой памяти.

Аудиофайлы можно добавить в архив для сжатия, но максимум, что вам удастся «выкроить» это 5-7% памяти, согласитесь, из-за этого можно вообще не терять время на архивацию.

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

Также, отлично экономит место уменьшение размера изображений и изменение формата. Всем известно, что PNG файлы занимают намного больше места, чем привычный формат Jpg.

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

Но если архиваторы не так нужны сегодня, почему их разработчики продолжают выпускать обновления и даже продают программные продукты? Объяснить это не сложно, за счет архиваторов, можно удобно группировать данные, например, чтобы не передавать их через интернет по одному.

Также, путем архивации информации, можно увеличить её защиту, ведь даже в стандартном наборе

Во времена моей юности являлось чуть ли не самой обращаемой к ней функцией – диски по 7 – 20 гБ никак не могли вместить в себя всю нужную информацию. И именно для этого сжатие и существует: освободить место на жёстком диске. Когда вы сжимаете файл или папку, данные, используя специальный алгоритм Windows, перезаписываются и после операции занимают меньшее количество кластеров. При обращении к файлу в следующем сеансе система производит обратный процесс, перед тем как вы сможете увидеть хоть бит нужной информации. А на это, как понимаете, нужно время и ресурсы системы.

Функция сжатия файлов с момента появления Windows находилась в составе утилиты очистки дисков . Но со времён Windows 7 перекочевала в отдельную струю: разработчики посчитали, что проблем с нехваткой пространства компьютера стало меньше, да и сжатие огромного количества файлов сильно замедляет функционал Windows: при активации этой функции система сжимала все файлы подряд, а это значит там могли оказаться и жизненно важные параметры, к которым обращение во время текущего сеанса сиюминутно… Сейчас освободить пространство легко с помощью других утилит, которые работают в другом направлении, и/или проводя . В конце концов, любая программа-архиватор умеет гораздо больше, чем описываемая функция. Однако она есть, знакомимся с ней.

Кстати

Функция и подход к сжатию в Windows 10 серьёзно изменился и, кажется (пока, по крайней мере) в куда более лучшую сторону. Но об этом отдельной статьёй.

Пару абзацев теории…

Файловая система NTFS использует параметр “единица сжатия ” с целью определить степень разбиения, гранулярности потока байтового диапазона, а также их выравнивание или группирование по блокам. Размер этой самой единицы зависит только от размера кластера в системе NTFS. До последнего момента для расчёта размера кластера используется такая таблица:

Как видите, начиная с определённого момента начинаются исключения: “родное” NTFS-сжатие перестаёт работать на томах и разделах, размер кластера которых выбран более чем 4 КБ. Для размеров от 8 КБ начинает использоваться сжатие для разреженных файлов . Такие файлы – очередной конёк файловой системы NTFS, который позволяет создавать приложениям файлы очень больших размеров, которые, как это ни странно звучит, могут превышать размер родительской директории. Это происходит потому, что львиная доля содержимого таких файлов (а порой и полностью) заполняется нолями или нолевыми цепочками. При этом файловая система логические кластеры таким цепочкам не предоставляет. А NTFS создаёт лишь “указатель места заполнения виртуального количества кластеров”. Причём здесь сжатие? NTFS, работая над сжатием файла или папки, разделяет поток данных по тому же принципу. При этом процесс сжатия для каждого файла индивидуален; степень сжатия и последующие с файлом операции очень зависят от его реального размера.

Сжатие файлов и папок

Функция доступна из контекстного меню по нажатии правой мышкой по нужному файлу/папке. Она здесь:

Активируем функцию, сжатие началось. После этого можно будет заставить Windows подсвечивать сжатые файлы. Это же легко проделать с целым диском. Найдём в Windows Explorer список томов и также вызовем контекстное меню правой мышкой:

Сжатие дисков и файлов. О чём нужно знать?

  • Сжатие доступно ТОЛЬКО для файловой системы NTFS
  • Если файл перемещается из обычной папки в сжатую папку ДРУГОГО ДИСКА, он также проходит процедуру сжатия
  • Если файл перемещается из обычной папки в сжатую папку ТОГО ЖЕ ДИСКА, сжатие аннулируется и файл/папка возвращаются к первоначальному своему размеру
  • Сжатые с помощью NTFS компрессии файлы зашифровать невозможно: дублирование процедур в любом виде в Windows исключено, и потому…
  • Сжать уже сжатый файл тоже не получится)))
  • Не путайте с архивацией (в zip, rar и т.п.)

Сжатие. Чего делать нельзя.

Как вы уже поняли, сжатие Windows – это не та функция, с которой стоит баловаться. Однако понимание функции сжатия (хотя бы в пределах абзацев вверху статьи) может помочь вам определить корень появившихся ошибок. Самые типичные из них, и в этом может быть вина именно функции сжатия :

  • Недостаточно места на диске. Эта ошибка может вас подстеречь именно в момент копирования файла/папки или на этапе создания резервной копии
  • Ошибка копирования файлов больших размеров в сжатую папку
  • Сжатые файлы виртуальных дисков VHD снижают производительность виртуальной машины

Не сжимайте диск с установленной на ней операционной системой! Системный диск С: подвергать этой процедуре нельзя. Чаще всего от этого страдают драйверы устройств, отказывая в запуске целому набору устройств, только что, казалось бы, работавших. После окончания процедуры сжатия операционная система в новом сеансе, скорее всего, уже не загрузится. Но если – не знаю, что вас заставило – вы на это решитесь, не трогайте хотя бы корневые директории .

После сжатия система не загружается…

Если я с советами опоздал, и вы уже столкнулись с отказом запуска системы после сжатия, знайте, что сжатыми оказались те немногие, но архиважные для загрузки системы файлы. А во время запуска системы процедура “де-сжатия” не предусмотрена. Как итог: система не запускается или идёт постоянный перезапуск Windows. И потрудиться придётся.

Я в таких случаях всегда пользуюсь универсальным вариантом – это внешний бокс с установленным внутри жёстким диском, на котором всегда наготове целая куча образов загрузочных дисков Windows любой модели и разрядности: от Windows XP до Win10 32-х и 64-х. И не парюсь по поводу бесчисленных дисков и флешек.

Установите в BIOS загрузку с дисковода с диском Windows внутри:

выберите язык и в окне установки выберите пункт Восстановление системы :


Первые персональные компьютеры обладали небольшой дисковой памятью. Чтобы перенести файлы и программы с одного компьютера на другой, их записывали на гибкие дискеты малой емкости. Памяти катастрофически не хватало. Дефицит памяти естественно побудил компьютерщиков искать способы экономной записи файлов. Одним из таких способов стала компрессия или сжатие информации. Оказалось, что во многих случаях файл можно после преобразования специальной программой сделать гораздо меньшим по размеру. Программы сжатия стали называть архиваторами. Сегодня мы на примере одной любопытной истории подробно расскажем о такой полезной для каждого пользователя функции, как сжатие файлов.

Закономерно возникает вопрос: а зачем сейчас нужно сжимать файлы, если все основные технические характеристики персональных компьютеров каждые полтора-два года удваиваются? Оперативная память современной персоналки от 128 до 512 мегабайт, дисковая память вообще исчисляется десятками гигабайт. Казалось бы, можно особенно не заботиться о размерах файлов.

Но интерес к сжатию файлов по-прежнему высок. Можно выделить две основные причины такого интереса. Первая, на персональных компьютерах стали воспроизводить и обрабатывать звук и изображение. Звуковые, графические и особенно видео файлы по объему памяти требуют на порядки больше памяти, чем текстовые. Одна фотография 15х20 см с хорошим разрешением 600 точек на дюйм или всего одна десятиминутная музыкальная композиция по объему превышают собрание сочинений Чехова.

Вторая причина интереса к сжатию, пересылка файлов по электронной почте и скачивание с Интернет-узлов звуковой и графической информации. Пропускная способность обычных интернетовских линий не позволяет быстро пересылать файлы, превышающие несколько мегабайт, и поэтому многие серверы просто не пропускают большие файлы или искусственно ограничивают у пользователя скорость передачи информации. Поэтому сжатие файлов по-прежнему актуально.

Архиваторы уменьшают некоторые файлы в 5-10 раз. За счет чего удается так сильно сократить размер файла? Некоторые файлы построены неоптимально с точки зрения их объема. Например, распространенные архиваторы сжимают большие файлы Microsoft Word в пять-шесть раз, а маленькие почти в десять. Чтобы прочесть такой сжатый текстовый файл, его нужно разжать той же самой программой.

Многим пользователям поначалу приходила в голову блестящая мысль - попробовать сжать ещё раз уже сжатые файлы. Первая же попытка разочаровывает - сжатые файлы дальше не сжимаются, причём у всех архиваторов. Почему так происходит?

Дело в том, что файлы представлены в памяти компьютера как длинные числа. А число любой заданной длины, в общем случае, нельзя точно передать числом меньшей длины, даже если оно короче всего на одну цифру. Из-за этого единственным способом сжатия данных является поиск в них некоей избыточной информации или закономерностей. Избыточную информацию можно удалить, а закономерности использовать для кодирования похожих фрагментов меньшим количеством байт. Значительное сжатие аудио-файлов стало возможно, потому что часть записанного звука ухо среднего человека не различает, или его не раздражает потеря некоторой звуковой информации.

Когда программа обработала файлы соответствующим образом, нашла закономерности, удалила малозначимую информацию, то вторично она уже эту операцию провести не сможет. Поэтому при повторных сжатиях файл не уменьшается. Может показаться странным, но избыточной информации нет и в случайных данных, например в записях шумов радиоприемника на частоте, где нет передающих станций или в результатах работы программы - генератора случайных чисел. Дело в том, что в наборе действительно случайных чисел архиватор не может найти закономерностей. Получается, что и в сжатой энциклопедии, и в результатах тиражей Спортлото машина не может найти избыточную информацию, хотя энциклопедия - это концентрат знаний, а тиражи Спортлото - длинный набор случайных цифр.

Надо подчеркнуть, что программы-архиваторы не проводят анализа содержания. Одна и та же по смыслу информация может занимать совершенно разные объемы памяти. Страница текста отпечатанного на компьютере в текстовом редакторе - это всего два килобайта. Если та же страница представлена в виде черно-белой картинки с удовлетворительным пространственным разрешением, то требуется - 2 мегабайта, то есть в тысячу раз больший объем. В цвете эта страница достигнет 20 мегабайт. Если текст прочтет диктор по радио, то в зависимости от качества записи две минуты звучания займут от одного до 20 мегабайт. Наконец, вы захотели увидеть диктора, читающего эту страницу: размер оцифрованного файла увеличится еще на порядок.

Итак, основной принцип сжатия - это поиск закономерностей. В случайных данных закономерностей нет, и поэтому теоретически их сжать абсолютно невозможно. Несжимаемость, с точки зрения теории информации, - это фундаментальное свойство ряда случайных чисел. Однако весной прошлого года произошла история, где это утверждение подверглось серьезному испытанию. История эта тем интереснее, что её главный герой - не учёный, а находчивый дилетант, хорошо понимающий, что важны не только фундаментальные принципы, но и способы их программной реализации. Но расскажем об всём по порядку.

Интернет - очень удобная среда для общения профессионалов. Удаленные друг от друга специалисты из разных стран могут обсуждать проблемы своей области. В Сети хорошо известна сетевая иерархия Usenet. Она объединяет тысячи дискуссионных групп на самые разные темы. Есть там и группа под названием COMP.COMPRESS. В ней специалисты обсуждают компрессию, т.е. сжатие информации. Участие в обсуждениях группы требует значительной подготовки. Поэтому случайные посетители в COMP.COMPRESS надолго не задерживаются. Правда, время от времени кем-то из новичков высказывается мнение, действующее на специалистов по сжатию примерно так же, как на физиков проекты вечного двигателя, а на историков - сочинения Фоменко. Условно проблему можно назвать "чудо-компрессор".

Как правило, речь идет о том, что сотрудники малоизвестной компании разработали революционный алгоритм или даже программу для многократного сжатия информации. Обычно утверждается, что сжатие идёт без потерь, и (самое главное) - во много раз сжимается любая информация. При внимательном рассмотрении оказывается, что это - блеф, но, тем не менее, эта idea fix регулярно возникает на страницах компьютерной прессы. Характерный пример. В апреле 92-го года компания WEB Technologies объявила о создании программы, сжимающей в 16 раз любые файлы размером больше 64-х килобайта. Были другие фирмы, которые заявляли о столь же удивительных параметрах своих программ. Некоторым из них удалось даже запатентовать собственные алгоритмы, однако, в результате, подобные проекты оказались мыльными пузырями.

Это, конечно, не значит, что компрессия данных, как направление, больше не развивается. Наоборот, едва ли не каждые полгода появляются новые алгоритмы или совершенствуются старые, сжимающие данные всё сильнее и сильнее. Особенно заметен прогресс в компрессии звука и видео. Если десять лет назад для записи обычного фильма требовались два огромных лазерных диска размером с большую грампластинку, то сейчас для достижения близкого качества достаточно одного CD-ROM-а, и судя по всему, это не предел. Такие успехи создают у неспециалистов иллюзию, что сжимать можно всё и очень сильно, надо только придумать алгоритм. Но не надо забывать, что популярные алгоритмы сжатия звука и графики сжимают данные с потерями. Это означает, что они не столько сжимают информацию, сколько удаляют из неё фрагменты, удаление которых не режет слух и не бросается в глаза. Но даже непрофессионал, если у него есть возможность сравнить, услышит разницу между действительно качественным звуком и сжатыми файлами.

Если говорить о сжатии без потерь, то в нём уже давно не было пионерских работ. Последний принципиально новый алгоритм безпотерьного сжатия был изобретён в 80-х годах и пока мало применяется из-за большой сложности. Кроме того, как уже говорилось, есть данные, которые вообще нельзя сжать без потерь. Это, во-первых - случайная информация, а во вторых - сжатая ранее. Если допустить, что компрессор сжимает без потерь любые файлы, то можно взять файл и уменьшить его один раз, затем опять пропустить через компрессор и опять уменьшить. Если операцию повторять снова и снова, то, в конце концов, файл сожмётся до одного бита, сохранив всю полезную информацию, что, конечно - абсурд.

Несмотря на это, благодаря случайным посетителям, слухи о чудо-компрессорах регулярно проникают в группу COMP.COMPRESS и раздражают её старожилов. В один прекрасный день, чтобы покончить с вопросом раз и навсегда, один из профессионалов, Майк Голдмэн (Mike Goldman), предложил всем обладателям чудо компрессора выплатить денежное вознаграждение. Он написал:

Майк Голдмен

Я готов заплатить пять тысяч долларов любому, кто выполнит следующие условия. Вы сообщаете мне, какого размера файл можете сжать, и в доказательство своей серьезности присылаете мне 100 долларов. Я генерирую файл и высылаю вам. Вы изучаете его сколько хотите, затем сжимаете и присылаете мне вместе с программой для разжатия. Я разжимаю файл и проверяю - не была ли потеряна информация. Если не была, и сжатый файл вместе с вашим декомпрессором хоть сколько-нибудь меньше исходного файла, я заплачу вам 5 тысяч, плюс ваши 100 долларов.

Александр Костинский

Другими словами, если у вас есть программа, на самом деле сжимающая любую информацию, то вы легко можете заработать пять тысяч долларов. Предложение Голдмена, было выложено в Интернете http://www.faqs.org/faqs/compression-faq/part1/section-8.html вместе с подробными объяснениями, почему нельзя сжать случайную информацию и почему архиватор, сжимающий любые данные - невозможен. Пари оставалось без ответа несколько лет, но 26-го марта прошлого года, по электронной почте Голдмену пришло письмо от человека по имени Патрик Крейг (Patrick Craig) в нем писалось:

Патрик Крейг

Я прочитал ваше предложение. Звучит очень заманчиво, оно всё еще в силе? Если да, то хотелось бы узнать детали о декомпрессоре - он должен запускаться на любой машине или достаточно какой-то одной платформы, например Linux?

Майк Голдмен

Да, предложение в силе. Linux-а достаточно. Вы хотите рискнуть?

Патрик Крейг

Я всё еще думаю над этим. Вам нужен только сжатый файл?

Майк Голдмен

Вы говорите, какого размера файл нужен, и присылаете мне 100 долларов. Я генерирую файл и высылаю вам. Вы присылаете мне его сжатым вместе с декомпрессором. Если сжатый файл вместе с декомпрессором меньше оригинала - я высылаю вам 5 тысяч. Если у вас не получилось - можете опять прислать мне 100 долларов и попробовать ещё раз.

Патрик Крейг

А могу я прислать сжатую информацию не одним файлом, а несколькими частями, плюс декомпрессор, который восстановит оригинал?

Майк Голдмен

Да, вполне.

Патрик Крейг

Я принимаю вызов. Как вам можно отправить деньги?

Майк Голдмен

Пришлите чек или банковский перевод. Если вы закажете очень большой файл, то должны обеспечить соответствующий носитель. Вы уже решили, какой размер вам нужен?

Патрик Крейг

Я до сих пор думаю над оптимальным размером, но полагаю, он будет меньше гигабайта. У вас есть где-нибудь доступ к анонимному ftp-серверу?

Александр Костинский

Далее идёт обсуждение мелких деталей, из которых выясняется, что обладатель чудо компрессора - англичанин. Он сейчас живёт в Японии, откуда не может послать чек в США Майку, поэтому вышлет деньги наличными по почте. Видя, что вызов принят, Майк пробует выяснить - каким же способом Патрик собирается выполнить теоретически невозможные условия, но тот не сдаётся, отвечает: "подожди, увидишь" и высылает деньги. Заметим, что переговоры уместились в одиннадцать электронных писем и прошли всего за несколько часов. Наличные идут по обычной почте из Японии в США четверо суток. Майк получает деньги и Патрик сообщает ему размер файла, который он готов уменьшить. Он требует 3 мегабайта. Но что же предлагал сжать всем желающим Майк Голдмен?

Человек, рискующий пятью тысячами долларов, должен позаботиться о несжимаемости своих данных. Совершенно несжимаемая информация, как уже говорилось - набор случайных чисел. Но, оказывается, гарантированно получить такой набор - не такая простая задача. Программа всегда строго следует алгоритму и в результате ее работы могут быть сгенерированы лишь псевдослучайные числа. При этом нет уверенности, что данный ряд чисел не может быть повторен или сгенерирован подобной программой. Настоящий хаос можно найти только в событиях реальной жизни.

Надежными генераторами случайных чисел многие специалисты считают источники радиоактивного излучения. Радиоактивные вещества распадаются в строгом соответствии с теорией вероятности, и повлиять на их активность в обычных условиях практически невозможно. Криптографы для создания надёжных ключей шифрования используют именно радиоактивные образцы. Но есть и более простые решения. Например, Web-сайт Random.org даёт посетителям доступ к генератору случайных чисел, построенному на обычном радиоприёмнике. Этот приёмник подключён к серверу через обычную аудиокарту и настроен на частоту, на которой не ведутся радиопередачи. Источником случайных чисел служит атмосферный радиошум. Это вполне качественный генератор. Специальной программой его результаты можно собирать в файл, и именно из этого источника Майк Голдмен получил 3 мегабайта несжимаемых данных для Патрика Крейга.

Что же сделал с ними Патрик Крэйг? Свою версию событий он поместил в Интернете:

Патрик Крейг

Тот, кто предлагает вам такое пари, наверняка знаком с теорией информации и, скорее всего, предложит для сжатия данные какого-нибудь генератора случайных чисел. Теоретически, такой генератор может выдать всё что угодно, даже осмысленный текст, который можно сжать обычным архиватором, но надеяться на это не стоило, поскольку Майк Голдмен несомненно проверял файл, перед тем как высылать его мне. По условиям пари было достаточно сэкономить всего один байт, при этом ничего не говорилось о сохранении имени исходного файла. Можно было использовать имя файла для сохранения в нём нескольких байт информации, соответственно уменьшив на них общий размер файла. Однако, большинство сочло бы это нечестным трюком.

Другой вариант - вводить недостающие байты из командной строки при запуске декомпрессора. Естественно, в этом случае я должен был сообщить Майку, что он должен набрать эти недостающие байты вручную. Фактически, это означало бы сохранение информации в человеческой памяти. Кстати, таким способом можно любой файл уменьшить до нуля, а затем восстановить, набирая байт за байтом на клавиатуре. Однако, это трудно назвать компрессией.

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

Александр Костинский

Вот что придумал Патрик. Пусть, у нас есть длинный файл случайных данных. Находим в этом файле, допустим букву "А". Теперь на букве "А" мы разрежем файл на две части, а саму букву выбросим. У нас получатся два файла, которые в сумме будут на один байт меньше исходного. Что бы восстановить оригинал, нужно просто склеить две его части, вставив между ними букву "А".

Естественно, исходный файл можно разрезать не на две части, а на три и больше, поскольку выбранная нами буква "А" встречается в нём много раз. Если мы имеем дело со случайными данными, то любой символ будет встречаться примерно каждые 255 символов. Таким образом, разрезая один длинный файл в тех местах, где у него находится буква "А" и выбрасывая её, мы превращаем один большой файл в цепочку маленьких, сберегая при этом четыре байта на каждом килобайте. Остаётся только написать простейшую программу, которая могла бы склеивать из множества нарезанных файлов один большой, первоначальный.

У Патрика эта программа, которую можно назвать декомпрессором, оказалась размером всего в 156 байт. Исходный файл в 3 мегабайта, можно было разделить приблизительно на 3 тысячи фрагментов, но Патрик решил остановиться после второй сотни, поскольку алгоритм был ясен, а результат очевиден.

В среду 4 апреля, профессионал Майк Голдмен получил от находчивого Патрика Крейга письмо, где говорилось, что исходный файл был разделён на 218 частей, суммарная их длина стала на 217 байт короче исходного файла. Программа-декомпрессор имеет размер 156 байт, кое-что ушло на сохранение имени файла. В результате, общий размер уменьшился на 44 байта. Условия, поставленные Майком Голдманом выполнены, следовательно, пора платить обещанные пять тысяч долларов.

В дискуссионной группе COMP.COMPRESS к общему удовольствию всех подписчиков, которые несколько недель обсуждали неожиданный результат. (http://groups.google.com/groups?hl=en&ic=1&th=f2d47a8426e2de35).

Между тем, Майк Голдмен не заплатил обещанные пять тысяч и объяснил свои действия так:

Майк Голдмен

Разрезая файл на две части и отбрасывая один байт в месте разреза, Патрик действительно уменьшал содержимое файлов на один байт. Но, кроме основного содержания, у каждого файла есть еще имя, дата создания, координаты расположения на физическом диске и так далее. В результате два файла, длина которых на один байт меньше третьего, на реальном диске занимают больше места, хотя их видимый размер действительно кажется нам меньше.

Александр Костинский

На это Патрик Крейг заметил:

Патрик Крейг

Если операционная система для одного длинного файла требует меньше места, чем для двух коротких, то это её проблемы, а не мои.

Александр Костинский

Формально он прав и, если понимать условия пари буквально, Голдмен должен признать проигрыш, а не уточнять правила по ходу дела. Кое-кто в дискуссионной группе призывал его "быть мужчиной и заплатить деньги". Однако, Майк ограничился тем, что вернул Патрику 100 долларов залога, сказав, что проделанный трюк никак нельзя назвать компрессий информации, и он сожалеет, что условия пари были сформулированы недостаточно ясно.

К чести Патрика Крейга, он не настаивал на награде и признался позже, что вовсе не рассчитывал заработать пять тысяч долларов. Его главной целью было "обхитрить хитреца" - показать, что у самоуверенного Голдмена можно выиграть, причём на его условиях, если рассматривать проблему, как головоломку, используя нечеткую постановку задачи.

Эта история оказалось полезной для всех её участников. Патрик Крейг показал незаурядную находчивость. Майк Голдмен понял, как надо изменить условия пари, чт бы в следующий раз не проиграть его. А наблюдавшие за этой историей еще раз убедились, что чудо компрессора быть не может, так как основы теории информации и теории вероятностей стоят на очень и очень прочном фундаменте.



КАТЕГОРИИ

ПОПУЛЯРНЫЕ СТАТЬИ

© 2024 «tassr90.ru» — Полезные компьютерные советы