astax, , Хорошая идея - <...> после воспоминаний о приколе о "супер-архиваторе" времен доса, втихую копировавшем файлы куда-то в сторону и создававшем очень маленький якобы архив, я задумался <...> А если серьезнее, то: Берем некий байт-код. Что такое байт-код? Это "машинный код виртуальной машины", вроде бинарников для Java-машины и подобного :-) Набор инструкций оптимизируем для вывода байтиков в что-то вроде stdout, ну, и не забываем всю остальную арифметику. Берем архивируемый файл. Полным перебором всех вариантов по мере возрастания длины, перебираем все варианты "архива" - то есть, пробуем "0", "1" ... "255", "0,0", "0,1" ... "0,255" ... "255,255", "0,0,0" и так далее. Функция "пробуем" заключается в следующем. Мы пихаем "архив" на вход интерпретатора байт-кода, задаем "таймаут" (чем больше таймаут - тем лучше архивация), и ждем, что получится на выходе. Если байт-код выдал на выход полное содержимое архивируемого файла - то вот он, искомый "идеальный архив"! Если за время таймаута этого не произошло (выдан не тот поток байт, код зациклился или не успел отработать) - переходим к следующему варианту в переборе. Как несложно понять, это почти идеальный архиватор - поскольку сможет "засечь" абсолютно любую алгоритмизируемую закономерность во входном файле, и при этом обладает небольшим оверхедом при сжатии "действительно не жмущихся" данных. Кстати, его можно будет использовать в науке - как раз для поиска закономерностей. ...одно плохо - работает уж больно долго :-) (с) DiBR Рвун Чехлов, , http://ru.wikipedia.org/wiki/%D0%9A%D.. ..E%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D1%8C ХнЗ кто, , орангутан, , а как узнать што это оно? погромист, , Отметиться |