fundo
Dos 256 caracteres possíveis que um byte pode representar, apenas alguns deles são usados na maioria das circunstâncias. De alguma forma, não poderíamos tirar proveito disso e diminuir nossos arquivos de texto, eliminando a necessidade de letras raramente usadas?
Muitas letras não agregam valor na maioria das situações e podem ser substituídas por letras mais comuns. Por exemplo, um "L" minúsculo, um "I" maiúsculo e o número "1" parecem quase idênticos na maioria das situações, para que possam ser consolidados.
Há pouca necessidade de letras maiúsculas, para que possam ser dispensadas. O programa de descompressão / exibição pode até colocar automaticamente em maiúscula a primeira letra de cada frase, nomes comuns etc.
Regras
As inscrições serão julgadas em:
- taxa de compressão
- legibilidade após descompressão
As inscrições serão testadas com base na versão em texto simples deste artigo: http://en.wikipedia.org/wiki/Babbage e em um artigo da BBC News selecionado aleatoriamente .
Marcas extras serão concedidas por; preservar qualquer marcação, embelezar após descompressão (ou seja, colocar em maiúsculas etc).
línguas
- O que você quiser, mas deve ser facilmente compilado (ou interpretado) em uma caixa básica * nix.
fonte
main = interact (\x -> take 90 x ++ " yada yada yada")
Respostas:
Perl
Muito ineficiente e com taxas ruins. Requer
/usr/share/dict/words
.Compressor
Descompressor
fonte
Perl, 0 caracteres
Taxa de compressão do infinito, embora não seja legível após a descompressão, para que perca algumas marcas.
fonte
Bash, 5 caracteres
Minha entrada preguiçosa que apenas pode ganhar:
Sem perdas, preserva perfeitamente a legibilidade e recebe todas as notas extras! A taxa de compactação no html Babbage é de 4,79x (153804 a 32084 bytes).
fonte