„Obraz jest wart tysiąca słów” - tak mówi stare powiedzenie. Średnie słowo ma około czterech znaków, więc obraz przekazuje 4kB informacji. Ale ile entropii , a nie informacji, może przekazać obraz?
Twoim zadaniem jest wygenerowanie obrazu o wielkości dokładnie 4000 bajtów, z możliwie najwyższą entropią. Możesz użyć dowolnego wybranego języka, biblioteki lub formatu obrazu i możesz wyświetlać dane w konsoli lub pliku, o ile prześlesz tutaj swój obraz.
Punktacja
Twój wynik to współczynnik kompresji (rozmiar skompresowany 4000 ÷), gdy obraz jest kompresowany za pomocą GNU w tar
wersji 1.28 i gzip
wersji 1.6, przy użyciu algorytmu DEFLATE i ustawień domyślnych - w szczególności polecenia tar -czvf out.tar.gz image
. Najmniejszy współczynnik kompresji wygrywa.
gzip -n image
nie można utworzyć pliku większego niż 4023 bajty przy danych wejściowych o wielkości 4000 bajtów. Potrzebuje 10 bajtów na nagłówek, 8 na stopkę, 1 na nagłówek i dopełnienie bloku DEFLATE oraz 4 na rozmiar bloku DEFLATE; reszta jest przechowywana jako nieskompresowane bajty. Większość plików składających się z losowych bitów jest przechowywana bez kompresji, tak jak powinny.
tar
domyślnie uwzględnia metadane, w tym mtime, w plikach wyjściowych. Wpływa to na końcowy rozmiar skompresowanego pliku - niektóre mimesime kompresują się lepiej niż inne. Zmiana polecenia nagzip -n image
spowodowałaby, że rozmiar wyjściowy byłby deterministyczny niezależnie od mtime (i nazwy pliku wejściowego).