Фон
Из 256 возможных символов, которые может представлять байт, только некоторые из них используются в большинстве случаев. Не могли бы мы каким-то образом воспользоваться этим и уменьшить наши текстовые файлы, исключив необходимость использования редко используемых букв?
Многие буквы не добавляют никакого значения в большинстве ситуаций и могут быть заменены более распространенными буквами. Например, строчные буквы «L», заглавные «I» и число «1» в большинстве ситуаций выглядят почти одинаково, поэтому их можно объединить.
Существует небольшая потребность в заглавных буквах, поэтому их можно обойтись. Программа распаковки / отображения может даже автоматически использовать заглавные буквы в каждом предложении, общих именах и т. Д.
правила
Записи будут оцениваться по:
- коэффициент сжатия
- удобочитаемость после распаковки
Записи будут проверены на соответствие текстовой версии этой статьи: http://en.wikipedia.org/wiki/Babbage и случайно выбранной статье BBC News .
Дополнительные оценки будут начислены за; сохранение любой разметки, украшение после декомпрессии (например, использование заглавных букв и т. д.).
Языки
- Все, что вам нравится, но должно быть легко скомпилировано (или интерпретировано) в базовом * nix-боксе.
источник
main = interact (\x -> take 90 x ++ " yada yada yada")
Ответы:
Perl
Очень неэффективно и имеет плохие показатели. Требуется
/usr/share/dict/words
.компрессор
декомпрессор
источник
Perl, 0 символов
Степень сжатия бесконечности, хотя и не настолько читаемая после декомпрессии, поэтому она потеряет некоторые отметки.
источник
Баш, 5 символов
Моя ленивая запись, которая только может победить:
Без потерь, поэтому он отлично сохраняет читаемость и получает все дополнительные оценки! Коэффициент сжатия в HTML-коде «Бэббидж» составляет 4,79х (от 153804 до 32084 байт).
источник