tło
Z 256 możliwych znaków, które bajt może reprezentować, tylko kilka z nich jest używanych w większości przypadków. Czy nie moglibyśmy w jakiś sposób skorzystać z tego i zmniejszyć nasze pliki tekstowe, eliminując potrzebę korzystania z rzadko używanych liter?
Wiele liter nie dodaje żadnej wartości w większości sytuacji i można je zastąpić bardziej popularnymi literami. Na przykład małe litery „L”, wielkie „I” i cyfra „1” wyglądają prawie identycznie w większości sytuacji, więc można je skonsolidować.
Duże litery nie są potrzebne, więc można je pominąć. Program do dekompresji / wyświetlania może nawet automatycznie zamieniać pierwszą literę każdego zdania, nazwy pospolite itp.
Zasady
Zgłoszenia będą oceniane na:
- Stopień sprężania
- czytelność po dekompresji
Wpisy będą testowane pod kątem wersji tekstowej tego artykułu: http://en.wikipedia.org/wiki/Babbage oraz losowo wybranego artykułu BBC News .
Dodatkowe oceny zostaną przyznane; zachowując wszelkie narzuty, upiększając po dekompresji (np. zdania wielkie litery itp.).
Języki
- Jak tylko chcesz, ale musisz łatwo skompilować (lub zinterpretować) na podstawowym * polu nix.
źródło
main = interact (\x -> take 90 x ++ " yada yada yada")
Odpowiedzi:
Perl
Bardzo nieefektywny i ma złe stawki. Wymaga
/usr/share/dict/words
.Kompresor
Dekompresor
źródło
Perl, 0 znaków
Współczynnik kompresji nieskończoności, choć nie tak czytelny po dekompresji, więc straci niektóre znaki.
źródło
Bash, 5 znaków
Mój leniwy wpis, który może wygrać:
Bezstratny, więc doskonale zachowuje czytelność i otrzymuje wszystkie dodatkowe znaki! Współczynnik kompresji html Babbage'a wynosi 4,79x (153804 do 32084 bajtów).
źródło