Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 19.09.2010, 19:21   #1
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию Идея алгоритма сжатия методом деления.

Привет, приснилась сегодня простая мысль: допустим файл - последовательность чисел, ну скажем 2345678543....xxxx и тд. Если впереди последовательности поставить точку, то получим 0.2345678543. Теперь уравнение: x / y = 0.2345678543....xxxx. Осталось найти X и Y и их сохранить в новый файл. Затем просто поделив x на y мы получим исходную последовательность.
Бред, да?
Tronix вне форума Ответить с цитированием
Старый 19.09.2010, 19:24   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

мне тоже такая мысль приходила, когда появились первые МК-61
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 19.09.2010, 19:25   #3
Levsha100
Влюбленный в С++
Старожил Подтвердите свой е-майл
 
Аватар для Levsha100
 
Регистрация: 20.07.2008
Сообщений: 4,033
По умолчанию

Я предлагаю методом умножения- умножения на ноль.
Смотри в корень!
use linux - be happy
Levsha100 вне форума Ответить с цитированием
Старый 19.09.2010, 19:31   #4
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Не бойтесь, развивайте мысль, сможете воплотить - сможете сжимать ЛЮБЫЕ файлы в пару десятков байт.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 19.09.2010, 19:37   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Цитата:
Теперь уравнение: x / y = 0.2345678543....xxxx.
Ну разделил. и что? Результат займет 8-10 байт.
Где экономия?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.09.2010, 19:46   #6
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну разделил. и что? Результат займет 8-10 байт.
Где экономия?
Смысл в том, что не надо хранить результат. А нужно хранить просто X и Y. Результат от их деления - и будет распакованная последовательность до заданной точности...
Tronix вне форума Ответить с цитированием
Старый 19.09.2010, 19:47   #7
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
Ну разделил. и что? Результат займет 8-10 байт.
Это если просто взять и поделить. А если делить длинной арифметикой с неограниченным результатом? 32 байта на X, 32 на Y, 32 на требуемый размер результата.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 19.09.2010, 19:50   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Цитата:
А нужно хранить просто X и Y
В каком формате? Вещественное все равно в процессоре занимает... 8 байт? да? Или 10? Я чет уже и не помню...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.09.2010, 19:52   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,003
По умолчанию

сколько в процессоре не суть важно, важно сколько займет тип нужный для заданной точности
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 19.09.2010, 19:52   #10
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Да хоть сто. Тут смысл в том, чтобы не останавливаться, когда, например дошли до 8-го знака после запятой, а идти дальше.

Пример для понимания:

Файл: 1B AA 15 1F 69 A6 9A 6A

Уравнение: X = 59, Y = 63. T = 16

Создание файла: X/Y = 0,93650793650793650793650793650794
0,93650793650793650793650793650794 -> 93650793650793650793650793650794
93650793650793650793650793650794 -> 1B AA 15 1F 69 A6 9A 6A
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ

Последний раз редактировалось Alex Cones; 19.09.2010 в 19:57.
Alex Cones вне форума Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программная реализация алгоритма сжатия текста методом LZP mr.hankey2008 Общие вопросы .NET 1 28.05.2010 22:16
поиск корня методом деления пополам jewels Общие вопросы C/C++ 2 16.11.2009 02:09
Решение уравнения методом деления отрезка пополам. Методом секущей. Panda196 Паскаль, Turbo Pascal, PascalABC.NET 3 25.11.2008 10:06
Вычисление корня уравнения методом деления отрезка пополам Absent Помощь студентам 12 25.11.2007 18:54