Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.01.2019, 02:01   #1
Great Future
Новичок
Джуниор
 
Регистрация: 27.01.2019
Сообщений: 1
Вопрос Компрессия данных любого размера до бесконечности с помощью числа "Пи".

Доброго времени суток. У меня вопрос к программистам по поводу реальности метода сжатия данных, который
мне пришел в голову. Так как я сам не программист и не математик ), проверить работоспособность схемы не
представляется для меня возможным. В кратце суть схемы на пальцах. С одной стороны есть бесконечное число десятичных знаков числа "Пи",
с другой данные (любой файл) которые легко могут быть конвертированы в такую же десятичную систему. Если взять к примеру объем числа "Пи" весом в 1гб из
расчета 1 знак = 1 байт(здесь могу ошибаться), то получается один миллиард знаков . Вполне естественно предположить что части файла переведенного в десятичную форму
будут в каких то местах полностью совпадать с последовательностью знаков из числа "Пи". Таким образом мы можем собрать любой файл. Дело будет
лишь в количестве этих частей. 1, 10, 100 000 или более. Но при любом раскладе получается что сам код такой сборки будет ничтожно мал по сравнению
с первоначальным объемом самого файла. Представить такой код можно так же в десятичной форме. Например. Точка захода в число "Пи", то есть
количество знаков от его начала и само количество знаков в этой части. Так же можно добавить перед этими двумя числами по одному знаку который будет
обозначать количество знаков в этих двух числах для того что бы отделить одну часть от другой в непрерывном коде из знаков. Так как общее количество
знаков в числе "Пи" не будет превышать одного миллиарда то и эти два добавочных числа не могут быть двузначными. (Например есть совпадающая
последовательность с 765789 от начала числа "Пи" до 1202345. В этом случае код будет выглядеть как 676578971202345) В итоге мы имеем такую же
последовательность десятичных чисел, которую в свою очередь мы сжимаем таким же способом шагом номер два. В конечном счете после
нескольких таких шагов мы имеем последовательность которая со стопроцентной гарантией попадет в число "Пи" одной частью. И код этой части будет иметь
от четырех до шестнадцати знаков. То есть по сути вообще ничто. Зная число шагов и делая обратную операцию мы получаем наш исходный файл. Получается
что мы имеем возможность сжимать любой объем данных будь то гигабайты или терабайты до этого ничтожного размера. Но и это еще не все. Собрав громадный
архив из этих микроскопических файлов мы так же можем их сжимать до бесконечности используя тот же метод. Если это работает, то мы закрываем тему объема
как такового вообще пробив боковую дверь в законе Мура, оставляя лишь одно число "Пи". Было бы здорово передавать бесценные научные данные терабайтных
размеров скажем откуда нибудь с Марса сжав все в несколько байт...Но вполне может быть что я ошибаюсь. Проверить бы все это.
Great Future вне форума Ответить с цитированием
Старый 28.01.2019, 02:54   #2
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Вот возьмите и прикиньте. Да хоть не пи, насчитайте гиг рандомных данных и попытайтесь из них что-то нарезать. Большие куски в этом гигабайте просто не найдутся, а на маленьких алгоритм будет неэффективен
Black Fregat вне форума Ответить с цитированием
Старый 28.01.2019, 06:30   #3
Smogg
Участник клуба
 
Регистрация: 14.06.2011
Сообщений: 1,138
По умолчанию

на олимпиаде по программированию было задание написать архиватор. Победила команда, которая написала работающую прожку копирования файлов)

а идея, в принципе, рабочая... Зипом жмем в 8 раз, чтоб рандомизировать и предужать исходник. А потом, на вашей сторонней базе повторов, пробуем ужать еще раз в 20...

2 в 30й - именно гиг и есть. 10 скидываем на служебную инфу.

Последний раз редактировалось Smogg; 28.01.2019 в 06:32.
Smogg вне форума Ответить с цитированием
Старый 28.01.2019, 09:03   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,708
По умолчанию

TC, начните что-нибудь читать по математике, информатике, теории кодирования... вдруг осознаете, что давно есть алгоритмы сжатия со словарем и более эффективные способы его создания, чем рандомный набор.
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Утверждение: "Значение любого элемента этой последовательности – одно из трех чисел целых положительных чисел. Четвертого числа не встречается.". vas23052003 Паскаль, Turbo Pascal, PascalABC.NET 2 14.02.2017 21:05
Составить процедуру. "Рисующую" на экране вертикальную линию из любого числа символов " * ". Rufer Паскаль, Turbo Pascal, PascalABC.NET 3 02.09.2016 11:20
Нужно пояснить/прокомментировать код программы, или коды функций "Добавить" "Удалить" "Обновить(редактировать" "Поиск" "Период") ZIRASS PHP 4 15.06.2016 14:23
Поиск решения упражнения по вычислению значения числа pi с помощью бесконечного ряда из книги Дейтелов "Как программировать на C" Motoroller Помощь студентам 8 13.05.2016 15:10
Подключиться к 1С в Lazarus 1.2.0 c помощью COM. "Fatal: illegal character "'?'" ($D0)" Streletz Lazarus, Free Pascal, CodeTyphon 0 15.04.2014 16:58