powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Об одном способе ресурсоёмкого сжатия данных
10 сообщений из 60, страница 3 из 3
Об одном способе ресурсоёмкого сжатия данных
    #39581886
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иван FXSнет.
Если исходная строка -
Код: plaintext
"10101011100111010101 1111 1001111001 1111111111 "
, то флаг "000", как и описано в п.1

Если случайная строка, внезапно, получилась
Код: plaintext
"11111111111111111111111111111111111111111111"
, то сжатая будет:
Код: plaintext
"10101011100111010101 000 100111001 000 "
(плюс отдельно нужно будет передать длины двух "флагированных" отрезков.
А где seed для инициализации ГПСЧ?
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39581890
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

тоже нужно будет передавать, это уже написано - в п.7 исходного поста.
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39581895
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Tдля хранения seed потребуется места столько же сколько занимает исходная подстрока, это я выше доказал я это ваше доказательство не вкурил, извините. Что за "исходная под -строка"?
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39581897
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иван FXSDima T,

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

И я придумал как эту задачу порешать за один проход всех вариантов seed :)
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39581907
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иван FXSDima Tдля хранения seed потребуется места столько же сколько занимает исходная подстрока, это я выше доказал я это ваше доказательство не вкурил, извините. Что за "исходная под -строка"?
Например чтобы нашлось 1111 (это исходная подстрока), т.е. 4 бита ГПСЧ должен иметь минимум 2^4 вариантов seed, поэтому чтобы записать конкретное значение seed надо будет 4 бита.

Хотя для твоего алгоритма доказательство не совсем корректно, т.к. найти надо какой-нибудь один из всего множества, т.е. вероятность выше, но чувствую что не намного, осталось придумать как это обосновать.
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39581912
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

"Например чтобы нашлось 1111 (это исходная подстрока)" ... в одной конкретной позиции ... "ГПСЧ должен иметь минимум 2^4 вариантов seed"

-- но нам совершенно не обязательно, чтобы нашлось именно "1111" и именно в этой позиции.
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39581927
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иван FXS-- но нам совершенно не обязательно, чтобы нашлось именно "1111" и именно в этой позиции.
Верно, я потому и написал "доказательство не совсем корректно".

Надо отталкиваться от другого: какой макс.длины подстрока наиболее вероятно найдется? Думаю М бит, где М такое что 2^M меньше всех возможных комбинаций seed. Потому что ГПСЧ может выдать больше всего различных комбинаций по М бит.

Дальше надо посчитать как-то вероятность получения совпадения M+1 бит, M+2 и т.д. Не соображу как, но чувствую что каждый доп.бит уменьшает вероятность вдвое, т.е. сэкономить пару байт это уже достаточно редкий случай.
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39583939
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglЭто обычный алгоритм LZW, только с ошибками и случайно-генеруемым словарем :fail:
только вы то ли не заметили, то ли решили умолчать о том, что "генерируемый словарь" означает, что словарь не класть в выходной файл (увеличивая его размер), как это делается в LZW.

("С ошибками" я не понял, поэтому отнестись не могу.)
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39583940
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иван FXSсловарь не нужно класть в выходной файл
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39583961
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас, почти через две недели, я бы по-другому сформулировал концепцию сжатия (гипотетическую, конечно, поскольку осуществимость её не доказана). А именно, я бы заменил "флаг" (который непонятно-какой-длины) на "цепную адресацию":

Есть данные Д - битовая строка длины N, - которую требуется сжать, и стандартный ГПСЧ.

1. В цикле перебираем значения seed (s), используемые для инициации ГПСЧ: ГПСЧ(s).

2. Записываем s в начало выходного файла.

3. Посредством ГПСЧ(s) генерируем случайную последовательность (СП) той же длины N.

4. Устанавливаем "счётчик цепной адресации" в ноль: А=0.

5. Сравнивая побитово Д и СП, движемся вдоль них обеих до тех пор, пока не находим в них (по "цепному адресу" А) одинаковую подстроку (П) длиной М.

6. Если используемая нами нотация записи целых чисел позволят записать эти два числа (А и М) короче, чем М битов, то записываем их в начало выходного файла. И записываем в его конец очередную порцию несжатых битов - те, что шли до П (то есть подстроку П "выбрасываем", не пишем в выходной файл).

(6.1. Кстати, мы можем постановить, что с подстроками короче М0 связываться принципиально не следует; тогда записывать нужно не М, а разницу М-М0, что чуточку выгоднее.)

7. Если условие, описанное в п. 6, выполнено, переходим на п.4; если не выполнено -- переходим на п.5. Дальнейшее сканирование строк -- в любом случае -- продолжается с первого бита после подстроки П.

8. Дойдя до конца строки Д, оцениваем полученный вариант сжатия: если он лучше всех предыдущих, сохраняем его, если нет -- забываем. И переходим к п.1 .
...
Рейтинг: 0 / 0
10 сообщений из 60, страница 3 из 3
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Об одном способе ресурсоёмкого сжатия данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]