Задания для самостоятельного выполнения
- Сложность:
- 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
.