LINUX.ORG.RU

Спасибо ВСЕМ. Но поражает факт, что

15^128 = 3464823841570940521841251787633899107341763939005956081649855025164014124153383005393700309333434209191671757175379231806194392189052899091182801387520

Значит, есть и обратный маршрут… Может, не такой уж короткий…

alex00
() автор топика

Никак. Лучше забей.

anonymous
()

Не, ты конечно можешь представить свой массив как

(a1*a2*a3...)+c

И раскладывать на простые множители, по какому-нибудь алгоритму. Или даже логарифмировать. Но это путь не быстрый, не эффективный.

anonymous
()
Ответ на: комментарий от alex00

есть и обратный маршрут

>>> bin(3464823841570940521841251787633899107341763939005956081649855025164014124153383005393700309333434209191671757175379231806194392189052899091182801387520)
'0b100001110111110001010011100000100010101101110100101110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
>>> 

i-rinat ★★★★★
()

еще китайская теорема об остатках на ум приходит. Берем 2,3,4 (сколько надо) взаимнопростых числа побольше, дробим исходное и делим, вместо одного большого записываем два маленьких. еще можно перевести исходное в аски и применить алгоритм Хаффмана, но там проблема как передать таблицу кодирования.

Silerus ★★★★
()
Ответ на: комментарий от anonymous

да ладно, там же винрар вроде был, к которому мордочку прикрутили

Silerus ★★★★
()

не обязательно, через вычисления. пока не пробовал Вариант: поиск и удаление с записью смещения(адреса) стандартных наборов: 010, 0110, 01110, 01110 и их инверсию

alex00
() автор топика

Ну все нашли программный калькулятор

anonymous
()

запись длины намного короче самой длины

alex00
() автор топика
Ответ на: комментарий от KivApple

Ищем 010,0110,01110,011110 и инверсии, одновременно и запишем тот который ближе к нулю. запишем и удалим. это может быть любая длина. к примеру, на 1024 бита,одна запись смещения - не более 10 бит.

alex00
() автор топика

открыв,как-то, штук 40 вкладок Авито, вижу что из 4х ГБ озу занято два ! если верить Слаке и её плагинам

alex00
() автор топика
Ответ на: комментарий от KivApple

Смещения могут расти в длине, например, от 2х до 10ти бит . тогда нужно записывать количество записей для каждой длины смещения. но строго по очереди

alex00
() автор топика
Ответ на: комментарий от alex00

неправильно написал.
не расти в длине, а меняться в длине

alex00
() автор топика
Ответ на: комментарий от alex00

еще вариант. левую и правую части как соединять так и НЕ соединять. понадобится еще один флаг. только сложно для понимания становится. будет не один ,а два массива

alex00
() автор топика
Ответ на: комментарий от alex00

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

alex00
() автор топика
Ответ на: комментарий от Legioner

поживем - увидим.

случайны не данные , а движения Ваших рук. и Мысли Вас посещающие.

alex00
() автор топика

Замечательная пара в программировании - NAME=VALUE может здесь пригодиться

alex00
() автор топика

Еще можно чередовать, все с флагом, удаление стандартных наборов( о них- выше), с наложением шаблонов и их инверсий( слева направо и наоборот): 01 0011 000111 00001111 и т.д. 00…0011…11. Затем поиск и запись первого НЕсовпадения. запись первого бита и длины шаблона. удаление совпадений.

alex00
() автор топика
Ответ на: комментарий от Legioner

Все данные случайны (в общем случае). Другое дело, что у ТС очень короткий массив. Общеизвестные алгоритмы работают за счёт «коллизий случайных данных». Даже, если его массив возможно сжать выигрыш будет настолько незначительный, что «игра не стоит свеч». Сжатие уместно для больших массивов данных. Ему проще «придумать генератор случайных(?) массивов» :)

anonymous
()
Ответ на: комментарий от anonymous

15^128 = 3464823841570940521841251787633899107341763939005956081649855025164014124153383005393700309333434209191671757175379231806194392189052899091182801387520

Расчет на то ,что если удастся сократить массив процентов на 10-20, то можно повторно сократить то , что получилось после сокращения первого, фактического, в который можно писать и из него читать.

alex00
() автор топика
Ответ на: комментарий от alex00

оно конечно ботно.

по теме

утя равномощьны области сжатия и область сжатого

т.е если сохранять взаимно-однозначное соответствие то очевидно найдётся такой вход на котором твоё сжатие выдаст более длинное чем входное - эт так доказывается отсутствие универсального сжимателя.

anonymous
()

Первая вариация данного процессора под названием MuP21, имеет вычислительную способность 100 MIPS, при техпроцессе 1.2 мкм (!), энергопотребление 50 мВт. Работает процессор на 100 мГц и количество транзисторов равно 7000 штук (!).

Впечатляет. У Pentium 1 (60 МГц) с 3.1 млн. транзисторов, 0,8 мкм и до 15 ватт энергопотреблением, вычислительные возможности были примерно на том же уровне.

http://www.xtechx.ru/c40-visokotehnologichni-spravochnik-hitech-book/misc-processor/

alex00
() автор топика
27 марта 2021 г.
Ответ на: комментарий от alex00

Пример 1:

15 в степени 128 = 346482384157094052184125178763389910734176393900 956081649855025164014124153383005393700309333434209191671757175 379231806194392189052899091182801387520, ( 150 знаков) …………………….

Пример 2: (5 в степени (5 в степени 5 )) == число длиной 2185 знаков. это умножение, или разворачивание, или «расжатие»(сжатию обратный процесс) , декомпрессия,депрессия ….кому как… значит есть и обратный маршрут…

Это - ПАМЯТЬ…

Это - способ «запоминания»…

…………………….

  • цпу ,подобное SUBLEQ или ТТА (transport triggered architecture) , с одной командой перезаписи с места на место (копирование из АДРЕСА в АДРЕС) и одной вспомогательной командой - переход на N шагов вперед (назад) при выполнении условия.

Данные , в физической памяти, хранятся в «коротком» виде, том,который СЛЕВА от знака равенства. При поступлении программного запроса (других не бывает), «короткая» запись «разворачивается» в длинную, в ТРАНЗИТНОМ регистре. Далее производится либо чтение ,либо запись. При записи , нужно из «длинной» записи(данных) вычислить «короткую». Короткая запись(данные) записывается в физическую память. Транзитный регистр очищается.

т.е ЦПУ -это устройство чтения-записи из памяти в память (простейшее ЦПУ)

http://gerigeri.uw.hu/DawnOS/

Цитата: " Other computer architectures are extremely complicated, but SUBLEQ is easy to understand, easy to emulate or implement as a native hardware. This platform not have interrupts, MMU, TLB, paging, protected mode, or even registers - its just as simply as you think it is. "

Перевод: " Другие вычислительные архитектуры крайне сложны, но SUBLEQ проста для понимания, проста для эмуляции или реализации в реальном «железе». Эта платформа не имеет прерываний, MMU(блок управления памятью), TLB, разбиения на страницы (paging), защищенного режима, и ДАЖЕ РЕГИСТРОВ(!!!) …она проста настолько , насколько это можно себе представить.

alex00
() автор топика
Последнее исправление: alex00 (всего исправлений: 3)

А чем ты готов пожертвовать в угоду компрессии?
Например, если тебе нужна компрессия только по трафику, но совершенно не важно время обработки и есть много места на источнике и приемнике, то можно сделать так:

  • генеришь максимально большой словарь, идентичный на обеих сторонах
  • ищешь свой массив в словаре, когда не находишь, начинаешь его дробить на части и ищешь максимально большие части
  • вместо массива передаёшь только индексы начала куска в словаре и длительность в байтах

Соответственно:

  • чем больше словарь по отношению к массиву, тем выше шанс найти массив целиком и он весь сожмётся до длинны индекса и указателя длительности
  • чем короче словарь тем меньше места занимают индексы в трафике
rukez ★★★★
()

Лучше PAQ ничего не придумали, но оно очень-очень медленное и требует очень много памяти.

peregrine ★★★★★
()
Ответ на: комментарий от alex00

Это - ПАМЯТЬ… Это - способ «запоминания»…

Это - ШИЗА. За полтора года так и не отпустило?

wandrien ★★
()
Ответ на: комментарий от rukez

Благодарю Вас! Время обработки важно…

alex00
() автор топика

Если по науке хочешь, то смотри в сторону wavelet-ов. Они именно для этого и были придуманы ещё в 1990-ых.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.