Задания для самостоятельного выполнения
- Сложность:
- Rare
- Реализуйте на любом языке программирования программу-архиватор, выполняющую упаковку и распаковку файла. Программа должна отображать степень сжатия:
$$ SSR = \left( 1 - \frac{S_{comp}}{S_{src}} \right) \cdot 100 \%, $$ где \(S_{comp}\) - размер сжатого файла, \(S_{src}\) - размер исходного файла.
- Исходный и распакованный файл сравнить с помощью diff.
- Сложность:
- Medium
- Степень сжатия \(SSR\) должна быть положительной.
- Сложность:
- Well-done
- Принимается только:- Самый быстрый алгоритм сжатия в своём классе
- Cамый эффективный алгоритм сжатия в своём классе
 
- Алгоритмы тестировать на файле из 10000 уникальных строк по 32 символа из всех доступных символов, сгенерированном на random.org
Варианты заданий
- LZ77. Война и мир. 
- BWT+RLE. Геном домашней кошки. 
- Huffman. Произвольная книга из симулятора Вавилонской библиотеки. 
- Vitter. PPM файл. Формат PPM. 
- BWT+LZ77. ASCII STL файл. Формат STL. 
- MTF+RLE. Веб-страница. Пример страницы. 
- BWT+Huffman. Большой файл из SecLists (\(\ge\) 100 Мб). 
- BWT+Vitter. Блоки - /dev/random. Файл (\(\ge\) 100 Мб).
- MTF+LZ77. Самый большой файл из репозитория ядра Linux. 
- BWT+MTF+RLE. Словарь Ожегова. 
- MTF+Huffman. Любой файл \(\ge\) 100 Мб из COMB. Пароль - +w/P3PRqQQoJ6g.
- MTF+Vitter. - /var/log/Xorg.0.log.