Суп борщ. ИТТ призывается математик кун и прогроммизд кун (js, html, php, python и т.д не ЯП).Значит тема не нова - сжимаем данные без потерь до 0 байт.Попутно думаем новый способ, как сделать из 4х байт 3.Я бы рад порадоваться успехами, но мой алгоритм имеет охуенный изъян. Изложу в крации:Берём 4 байта, в которые заложено число 65835, в шестнадцатеричной системе (не переводил) примерно 0hfffffde5.1 что делаем - определяем 256 в какой степени помещается в число, очевидно, что 256^2 = 65536, отнимаем его.65835-65536=329.2 что делаем - определяем множитель числа 256, помещающегося в остаток и отнимаем его. Очевидно 1 * 256=256.329-256=64.В итоге что получается , что число 65835, занимающее 4 байта, можно закодировать в значения для 3х байт, как 2;1;64.Я бы рад считать это winом, но реальность суровая штука. Числа небольшой величины без проблем кодируются и декодируются обратно. По сути неограниченное количество данных, значения в которых для 4 байт не превышают определённый порог, можно сжимать вплоть до 3х байт. Например если бы мы имели гигабайт чисел в диапазоне от 0 до 65536, можно было бы получив 3 байта стартовых и количество шагов кодирования, декодировать исходные данные обратно переслав значения без регистрации через смс. Хуйня в том, что на числе например ~15млн, 1 байта уже не хватает чтобы множителем или иным образом кодировать остаток.Вопрос к математикам - как обойти это препятствие?
бамп
>>155961377 (OP)Чем тебе питон не угодил? Сажи
>>155961913Питоношкольнику неприятно
бамп5
>>155961377 (OP)Ебать дебил.Никак, блядь, не обойти это препятствие. В трех байтах помещается в двести с хуем раз меньше значений, чем в четырех.
>>155961941Ой вей, тут почти вся наука и хайлоад на питоне написаны
>>155962287в 256 если быть точным, петушок.
>>155962402Угу, угу.
>>155961377 (OP)Лол.Давай посчитаем сколько чисел можно закодировать тремя байтами. Одним байтом ты можешь закодировать 256 чисел. Тогда всего 256 256 256 = 16777216 = 2 ^ 24. Таким образом, ты не сможешь закодировать 4 байта.покормил
>>1559624824 полных байта кодируются как 256^4, при этом, если мы знаем, что возводим в степень 256, то остаётся лишь сохранить степень.
>>155962482> проебал знаки умножения
>>155961377 (OP)> Хуйня в том, что на числе например ~15млн, 1 байта уже не хватает чтобы множителем или иным образом кодировать остаток.Какое совпадение! Как раз ~15млн различных чисел 16777216, если быть точным и помещается в 3 байта нормальным способом!покормил
>>155962613что возводим в степень 256?
>>155962633Тут дело не в том, что помещаются значения, а в том, как их поместить в 3 байта если те же ~15 занимают 4 единообразным способом со всеми остальными числами.
>>155961377 (OP)Поздравляю, ты изобрел арифметическое кодирование.А теперь иди про энтропию почитай.мимо погромизд тред не читал
>>1559627202 же
Возможно есть смысл в некоей перестановке байт, вроде добавления лишних байт с нулевыми значениями, чтобы уменьшить диапазон значений в каждых 4 байтах.
После подобной хуйни байты уже не будут превышать порогового значения и смогут быть сжаты неограниченное количество раз.
Хуйни не неси.
Например:0xff0xff0xff0xf0x00xf0x00xf
>>155963061Нихуясе ты выражаешься!
оп перетолстил
>>155963131забыл
>>155961377 (OP)Да это хуйня твой метод, у меня лучше. Любая последовательность чисел содержится в числе пи, соответственно любую информацию можно закодировать двумя числами - номер знака с которого начинается последовательность и ее длинна.
Это значит берём ~15 млн0xffffff00делим на байты0xff 0xff 0xff 0x00Дополняем нулевыми байтами(16 байт)0x00 0x00 0x00 0xff0x00 0x00 0x00 0xff0x00 0x00 0x00 0xff0x00 0x00 0x00 0x00Кодируем(десятичные)(12 байт)1;0;01;0;01;0;00;0;0И вуаля, эту хуйню можно пробовать кодировать повторно. Какое же максимальное значение для 3 байт + 1 байт = 4 млрд, сукабля.
>>155963471слишком толсто
>>155963471Хуйня, на самом деле можно находить два числа, делить их друг на друга и потом убираем нолик и получаем нужную последовательность
>>155963488Хотя погодь.Максимальная степень 2, затем хоть 256 256 + 4 байт. В шестнадцатеричной 0h02ffff02 = 50331394Всёравно дохуя.
На самом деле нахуй не надо ничего сжимать, потому что нахуй не нужно передавать информацию, вся возможная информация у нас уже есть.Можно просто случайно перебирать последовательности нулей и единиц, пока они не сложатся в нужную информацию.
>>155963933Эволюционисты пожаловали.
На самом деле нахуй не надо ничего сжимать, потому что нахуй не нужно передавать информацию, вся возможная информация уже есть у Господа Б-гаНужно лишь прислушиваться к гласу Его, пока Он не направит тебя на путь истинный.