LolPack

Oct. 3rd, 2014 10:58 pm
ewoke: (Default)
[personal profile] ewoke
пусть у нас есть несжимаемый файл, по определению, байтики рандомные.

если взять первые 8 байт и представить их как число 64 бит, то для него можно подобрать множители, такие, что их можно записать как степень двойки (тройки). также будет остаток, который нужно будет добавить к произведению этих нескольких чисел, чтобы получить исходное число.

цель - найти такие множители, для которых можно будет записать их степень однобайтовым числом, т.е. от 0 до 255; например 2^16 или 3^78. если мы найдем такие множители, обозначение которых, включая обозначение остатка, займет меньше 8 байт, считай мы сжали эти 8 байт.

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

для этого приятно иметь процедуры деления/умножения произвольных больших целых чисел.

Profile

ewoke: (Default)
ewoke

October 2025

S M T W T F S
   1234
5 67891011
121314 15161718
19202122232425
262728293031 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 20th, 2026 02:24 pm
Powered by Dreamwidth Studios