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