История изменений
Исправление LINUX-ORG-RU, (текущая версия) :
Во всём этом есть только 1 здравое зерно которое можно понять и использовать, оно и используется, а именно использовать индексы как коды, подстановки или смещения (все алгоритмы LZname) так работают.
Ты свой алгоритм можешь и без программ проверить, на бумажке так как мне кажется кроме тебя его просто никто не понял. А особенно магические F(x)
которые скромно умалчиваются, мол там вся магия. Так в этом и суть придумать конкретную последовательность действий которая приведёт к удалению избыточный данных с сохранением порядка при добавлении наименьшего количества данных требующихся для восстановления упорядоченных данных в изначальную форму. Любой алгоритм сжатия просто меняет представление данных.
Зададим функцию F(n), и обратную ей G(n)
Магия Хогвардца? Где кишки этих волшебных функций? =)
Вот возьмем множество всех строк размера N
Не, давай возьмём множества всех значений байта это от 0 до 255 =) А затем все комбинации это 255^255 и это только для данных размером в 255 байт :D
Для этого мы берем функцию X(n), делает она следующие - берет бинарную строку и возвращает натуральное число от 1 до 2^N
Ок, можно в PI найти строку нужную и вернуть позицию числа после запятой с которой эта строка начинается =))))))))))))))) Тут проблема, опять волшебная функция которая. Если для бинарного представления строки будет ровно одно уникальное ей число, то это число и будет сама строка в битовом представлении. То есть эта функция просто вернёт входящую в ней строку всё. Дальше смысла думать уже нет, не есть ещё вариант, мы по строке делаем хеш, суём строку в хештаблю и выдаём индекс… Все всё поняли но я доскажу в «сжатых» нам придётся хранить сами исходные данные в полном размере + оверхед на хеши =)) Короче на этом этапе всё. Капут. Второй раз =)
Ну и дальше идут предположения о том как можно что-то построить на базе волшебных функций.
Не ну на деле можно для некоторого ограниченного числа значений придумать ограниченные алгоритмы. Например если нам между сервером и клиентом надо гонять данные состоящие максимум из 15~16 значений, но в любых комбинациях и любой длинны, мы построив всего одну табличку подстановки размером в 15~16 байт и один раз передав её клиенту все последующие данные можем сжимать ровно в два раза, независимо от их длинны (ну зависимо, чётное или нет количество пересылаемых байт), просто на халяву уменьшив трафик в два раза и имея практически нулевую нагрузку на CPU для распаковки и упаковки. У меня где-то игрушечный архиватор валяется самописный (к слову надо доделать) на этом принципе, только недописанный и там есть проблемки…
Так и у тебя если где то что-то имеет смысл, то ИМХО либо только у тебя в голове (в смысле только ты это понимаешь) либо только для определённого случая и определённых данных или их размеров.
Твой алгоритм не реализуем по определению, как минимум потому что ты сам не знаешь как он должен работать. Придумывать разное весело и круто, без шуток, только спотыкаясь можно что-то новое придумать, но если уж придумываешь то хоть для себя не оставляй висящих в воздухе магических действий, а если они нужны заменяй на что-то реальное как затычку которую можно в теории поменять потом.
Хотя фиг знает, может ты просто настолько умно завернул мысль что как минимум лично я воспринимаю её как глупость, а на деле я сам дурак, а у тебя новаторская идея просто недосказанная. Всякое бывает. Но вот это эф от икс… На бумажке сожми данные и разожми, для алгоритма компьютер не нужен, достаточно карандаша и бумаги.
Исходная версия LINUX-ORG-RU, :
Во всём этом есть только 1 здравое зерно которое можно понять и использовать, оно и используется, а именно использовать индексы как коды, подстановки или смещения (все алгоритмы LZname) так работают.
Ты свой алгоритм можешь и без программ проверить, на бумажке так как мне кажется кроме тебя его просто никто не понял. А особенно магические F(x)
которые скромно умалчиваются, мол там вся магия. Так в этом и суть придумать конкретную последовательность действий которая приведёт к удалению избыточный данных с сохранением порядка при добавлении наименьшего количества данных требующихся для восстановления упорядоченных данных в изначальную форму. Любой алгоритм сжатия просто меняет представление данных.
Зададим функцию F(n), и обратную ей G(n)
Магия Хогвардца? Где кишки этих волшебных функций? =)
Вот возьмем множество всех строк размера N
Не, давай возьмём множества всех значений байта это от 0 до 255 =) А затем все комбинации это 255^255 и это только для данных размером в 255 байт :D
Для этого мы берем функцию X(n), делает она следующие - берет бинарную строку и возвращает натуральное число от 1 до 2^N
Ок, можно в PI найти строку нужную и вернуть позицию числа после запятой с которой эта строка начинается =))))))))))))))) Тут проблема, опять волшебная функция которая. Если для бинарного представления строки будет ровно одно уникальное ей число, то это число и будет сама строка в битовом представлении. То есть эта функция просто вернёт входящую в ней строку всё. Дальше смысла думать уже нет, не есть ещё вариант, мы по строке делаем хеш, суём строку в хештаблю и выдаём индекс… Все всё поняли но я доскажу в «сжатых» нам придётся хранить сами исходные данные в полном размере + оверхед на хеши =)) Короче на этом этапе всё. Капут. Второй раз =)
Ну и дальше идут предположения о том как можно что-то построить на базе волшебных функций.
Не ну на деле можно для некоторого ограниченного числа значений придумать ограниченные алгоритмы. Например если нам между сервером и клиентом надо гонять данные состоящие максимум из 15~16 значений, но в любых комбинациях и любой длинны, мы построив всего одну табличку подстановки размером в 15~16 байт и один раз передав её клиенту все последующие данные можем сжимать ровно в два раза, независимо от их длинны (ну зависимо, чётное или нет количество пересылаемых байт), просто на халяву уменьшив трафик в два раза и имея практически нулевую нагрузку на CPU для распаковки и упаковки. У меня где-то игрушечный архиватор валяется самописный (к слову надо доделать) на этом принципе, только недописанный и там есть проблемки…
Так и у тебя если где то что-то имеет смысл, то ИМХО либо только у тебя в голове (в смысле только ты это понимаешь) либо только для определённого случая и определённых данных или их размеров.
Твой алгоритм не реализуем по определению, как минимум потому что ты сам не знаешь как он должен работать. Придумывать разное весело и круто, без шуток, только спотыкаясь можно что-то новое придумать, но если уж придумываешь то хоть для себя не оставляй висящих в воздухе магических действий, а если они нужны заменяй на что-то реальное как затычку которую можно в теории поменять потом.