Автор: Сергей, <zu@valley.ru>
Россия, 22 ноября 2002 года в 01:29:59
В ответ на : Re: еще дополнение (уточнение) от Serge Osnach
в 21 ноября 2002 года в 12:40:47:
> Повторяю рассуждения: > Пусть мы сжимаем файлы размером не более, чем N как минимум вдвое и хотим, чтобы половина этих файлов сжималась и разжималась без потерь. > Тогда количество файлов размером не более чем N будет округленно (+1, -1 не играют роли) 2^(N+1), количество файлов, сжимаемых вдвое соответственно 2^N. Архивы для удачно сжатых файлов будут размером не более, чем (N/2), и их количество примерно 2^(N/2+1)С точки зрения математики - все верно. А с точки зрения практики? По просьбе поясняю на двухбитном примере. (Понимая его как иллюстрацию к 200-битной цепочке). С точки зрения математики может существовать 4 двухбитных числа - 00, 01,10 и 11. Но допустим с точки зрения практики известно, что человечество использует только часть из них. Причем до сих пор неизвестны законы на основании которых мы можем теоретически определить какие не используются. И мощность компьютеров позволяет методом перебора оперировать только с 1-битными числами. Что мы делаем - выполняем статистические исследования на реальных наборах данных и пытаемся на их основании сделать вывод. Допустим на всех рассмотренных данных получили только 00 и 01. Проблема здесь конечно есть - мы не можем утверждать, что если мы возьмем более большую выборку в ней не встретится 10 или 11, хотя бы изредка. И утверждать что человечество использует только 00 и 01 можно с какой-то степенью вероятности. Но если выборка была достаточно большая и репрезентативная то на практике мы можем попробовать создать архиватор, задав таблицу соответствия 00-0 01-1. И данный архиватор для большинства данных будет работать. Аналогичный пример - вечный двигатель. С точки зрения науки существовать не может. Но если двигатель использует энергию приливов, или тепло Земли - с точки зрения человека его можно назвать вечным и использовать уже сегодня. > Замечательно. А как ты предлагаешь определять, может ли существовать такой файл в природе, или нет?
Мне не надо определять есть он или нет, мне надо на основании статистических исследований найти набор функций, подходящих большинству файлов. > С увеличением числа функций тебе прийдется писать в архив более длинные коды, определяющие, какой именно функцией был обработан очередной кусок. Это съест весь выигрыш от введения новых функций. Предположим у меня набор из 65000 функций для 200-битных цепочек. Ссылка на функцию занимает 16 бит. Мне надо выбрать одну подходящую, в которой аргумент для данного случая будет не длиннее 183 бит. Все они обладают свойством, что аргумент - более короткий чем результат. Большинство из них - подходят, но аргумент может варьироваться от 1 до 199 бит. И набор функций должен быть таким, чтобы в 0.9999 или лучше обеспечить требуемое отображение (не более 183). В алгоритме это не совсем так, но по математике - весьма похоже. Просто не хочу пока вдаваться подробнее. Вот досчитаю математику, увижу, что требуемую вероятность можно получить только на наборах в миллионы функций (ни один компьютер не потянет) - плюну на эту идею, тогда - расскажу что угодно про свои эксперименты.
|