Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Программирование Новый топик    Ответить
 Компрессия данных любого размера до бесконечности с помощью числа "Пи"  [new]
Great Future
Member

Откуда:
Сообщений: 5
Доброго времени суток.

У меня вопрос к программистам по поводу реальности метода сжатия данных, который мне пришел в голову. Так как я сам не программист и не математик ), проверить работоспособность схемы не представляется для меня возможным.

В кратце суть схемы на пальцах. С одной стороны есть бесконечное число десятичных знаков числа "Пи", с другой данные (любой файл) которые легко могут быть конвертированы в такую же десятичную систему. Если взять к примеру объем числа "Пи" весом в 1гб из расчета 1 знак = 1 байт(здесь могу ошибаться), то получается один миллиард знаков. Вполне естественно предположить что части файла переведенного в десятичную форму будут в каких то местах полностью совпадать с последовательностью знаков из числа "Пи". Таким образом мы можем собрать любой файл. Дело будет лишь в количестве этих частей. 1, 10, 100 000 или более. Но при любом раскладе получается что сам код такой сборки будет ничтожно мал по сравнению с первоначальным объемом самого файла.

Представить такой код можно так же в десятичной форме. Например. Точка захода в число "Пи", то есть количество знаков от его начала и само количество знаков в этой части. Так же можно добавить перед этими двумя числами по одному знаку который будет обозначать количество знаков в этих двух числах для того что бы отделить одну часть от другой в непрерывном коде из знаков. Так как общее количество знаков в числе "Пи" не будет превышать одного миллиарда то и эти два добавочных числа не могут быть двузначными. (Например есть совпадающая последовательность с 765789 от начала числа "Пи" до 1202345. В этом случае код будет выглядеть как 676578971202345)

В итоге мы имеем такую же последовательность десятичных чисел, которую в свою очередь мы сжимаем таким же способом шагом номер два. В конечном счете после нескольких таких шагов мы имеем последовательность которая со стопроцентной гарантией попадет в число "Пи" одной частью. И код этой части будет иметь от четырех до шестнадцати знаков. То есть по сути вообще ничто. Зная число шагов и делая обратную операцию мы получаем наш исходный файл. Получается что мы имеем возможность сжимать любой объем данных будь то гигабайты или терабайты до этого ничтожного размера. Но и это еще не все. Собрав громадный
архив из этих микроскопических файлов мы так же можем их сжимать до бесконечности используя тот же метод. Если это работает, то мы закрываем тему объема как такового вообще пробив боковую дверь в законе Мура, оставляя лишь одно число "Пи". Было бы здорово передавать бесценные научные данные терабайтных размеров скажем откуда нибудь с Марса сжав все в несколько байт...

Но вполне может быть что я ошибаюсь. Проверить бы все это.
28 янв 19, 02:04    [21795426]     Ответить | Цитировать Сообщить модератору
 Re: Компрессия данных любого размера до бесконечности с помощью числа "Пи".  [new]
exp98
Member

Откуда:
Сообщений: 1624
Конечно ошибаетесь. Лучше всего у Вас сожмётся текст, в к-ром записано Пи. Всё остальное - маловероятно (что сожмётся). И хранить репоизитарий с Пи придётся в общедоступном месте, на Марсе тоже.
По-вашему, какими порциями будет совпадать "Война и Миръ"? по однуму байту? а адрес этого байта в Пи какой длины будет? Надёжнее забить в базу все варианты байт диграммы, триграммы ...
Ну время поиска в этом псевдословаре ...
28 янв 19, 02:26    [21795429]     Ответить | Цитировать Сообщить модератору
 Re: Компрессия данных любого размера до бесконечности с помощью числа "Пи"  [new]
Eolt
Member

Откуда:
Сообщений: 1443
Сжатие файла в одно число))) Я такое еще в 5 классе проектировал. Только вместо числа Пи собирался использовать датчик случайных чисел. Но потом узнал про энтропию, и что файл длиной 2^N бит невозможно представить в виде 2^(N-1).
28 янв 19, 09:43    [21795504]     Ответить | Цитировать Сообщить модератору
 Re: Компрессия данных любого размера до бесконечности с помощью числа "Пи"  [new]
Лысый дядька
Member

Откуда:
Сообщений: 356
Great Future,

Ознакомьтесь, пожалуйста
28 янв 19, 10:10    [21795527]     Ответить | Цитировать Сообщить модератору
 Re: Компрессия данных любого размера до бесконечности с помощью числа "Пи"  [new]
mayton
Member

Откуда: loopback
Сообщений: 40510
Почему число Пи?

Более продуктивно КМК пронумеровать все файлы и пересылать в космос их номера. Как в том анекдоте... про номера
анекдотов. Кстати система версионного контроля Git считает что файлы уникальны в рамках 160 битного хеша. Грубо
говоря одинаковость двух файлов будет предопределена заранее... Туда-ж
торрент-трекеры. Правда у них формула чуть посложнее для длинных файлов. Для каждого куска (чанка) расчитывается
хеш.

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

Ну или всякие там концептуальные архиваторы которые рассматривают уже созданый архив как справочник слов для
будущего сжатия и так далее. Или вообще укомплектовать архиватор всеми "Словарями Даля" всех времен и народов.
28 янв 19, 11:05    [21795574]     Ответить | Цитировать Сообщить модератору
 Re: Компрессия данных любого размера до бесконечности с помощью числа "Пи"  [new]
Roman Mejtes
Member

Откуда: г. Пермь
Сообщений: 3317
у меня есть подозрение, что если рассчитывать число Pi перед упаковкой\распаковкой, то на разных архитектурах, а возможно и на процессорах одинаковой архитектуры вы получите совершенно 2 разных числа. При такой уровне точности, о котором вы пишите, это гарантировано.
28 янв 19, 12:35    [21795675]     Ответить | Цитировать Сообщить модератору
 Re: Компрессия данных любого размера до бесконечности с помощью числа "Пи"  [new]
mayton
Member

Откуда: loopback
Сообщений: 40510
Roman Mejtes
у меня есть подозрение, что если рассчитывать число Pi перед упаковкой\распаковкой, то на разных архитектурах, а возможно и на процессорах одинаковой архитектуры вы получите совершенно 2 разных числа. При такой уровне точности, о котором вы пишите, это гарантировано.

Современные алгоритмы (те которые соревнуются в рекордах по вычислению этого числа) используют
точную арифметику. Не float/double.
28 янв 19, 14:11    [21795851]     Ответить | Цитировать Сообщить модератору
 Re: Компрессия данных любого размера до бесконечности с помощью числа "Пи"  [new]
alex55555
Member

Откуда:
Сообщений: 2095
Great Future
Доброго времени суток.

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

Но корень идеи правильный. Только область применения - узкая.
28 янв 19, 14:23    [21795872]     Ответить | Цитировать Сообщить модератору
 Re: Компрессия данных любого размера до бесконечности с помощью числа "Пи"  [new]
kolobok0
Member

Откуда:
Сообщений: 1937
Great Future
...Проверить бы все это.


наверное нет такого разработчика который бы.... но получается всегда что-то боковое. то повышенной надёжности кодирование, то новый алгоритм хранения, то новый алгоритм распределения на числовой прямой. А проверял, своё время, на компах сотрудниках. Делал резидент, который распространял через сервак новелла(у него был сценарий загрузки для клиента), алгоритм простоя станции, вирусный принцип маскирования в оси, ловля админ пароля и прочие попутные мелкие задачки :)

и ещё. Вы не поверите - но периодически накрывает эта задача :) но конечно же с пониманием существующей математики как тут уже выше прозвучало...

удачи вам
(круглый)
28 янв 19, 20:58    [21796259]     Ответить | Цитировать Сообщить модератору
 Re: Компрессия данных любого размера до бесконечности с помощью числа "Пи"  [new]
Great Future
Member

Откуда:
Сообщений: 5
Огромное спасибо за ответы. Именно это я и хотел услышать.
28 янв 19, 22:36    [21796345]     Ответить | Цитировать Сообщить модератору
 Re: Компрессия данных любого размера до бесконечности с помощью числа "Пи"  [new]
mayton
Member

Откуда: loopback
Сообщений: 40510
Автор почитай еще Борхеса. Так... ради досуга. Может еще мысли какие-то будут.

http://www.library.ru/lib/book.php?b_uid=42
29 янв 19, 00:25    [21796383]     Ответить | Цитировать Сообщить модератору
 Re: Компрессия данных любого размера до бесконечности с помощью числа "Пи"  [new]
Great Future
Member

Откуда:
Сообщений: 5
Спасибо, почитал. Интересно.
29 янв 19, 11:17    [21796597]     Ответить | Цитировать Сообщить модератору
 Re: Компрессия данных любого размера до бесконечности с помощью числа "Пи"  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 56668
Блог
Great Future
Но вполне может быть что я ошибаюсь.

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

Что же до конкретно Вашего предложения, то его суть в сжатии данных по некоему постоянному, заранее рассчитанному для всех словарю, в роли которого выступает число "пи". Из чего интуитивно понятно, что такой метод будет уступать сжатию по адаптивному словарю, наиболее подходящему к конкретному случаю (это тот метод, которым давным-давно пользуются архиваторы).
29 янв 19, 11:25    [21796603]     Ответить | Цитировать Сообщить модератору
Все форумы / Программирование Ответить