«Картинка стоит тысячи слов», - гласит старая поговорка. Среднее слово длиной около четырех символов, поэтому картинка передает 4 КБ информации. Но сколько энтропии , а не информации, может передать картина?
Ваша задача - сгенерировать изображение размером ровно 4000 байтов с максимально возможной энтропией. Вы можете использовать любой язык, библиотеки или формат изображения, который вы выберете, и вы можете выводить их на консоль или в файл, если вы загружаете свое изображение сюда.
счет
Ваша оценка - это степень сжатия (4000 ÷ сжатый размер), когда ваше изображение сжимается с помощью GNU tar
версии 1.28 и gzip
версии 1.6 с использованием алгоритма DEFLATE и настроек по умолчанию, в частности, команды tar -czvf out.tar.gz image
. Наименьшая степень сжатия выигрывает.
gzip -n image
не может произвести файл, больше чем 4023 байта при входе в 4000 байтов. Требуется 10 байтов для заголовка, 8 для нижнего колонтитула, 1 для заголовка и заполнения блока DEFLATE и 4 для размера блока DEFLATE; остальные просто хранятся в виде несжатых байтов. Большинство файлов, состоящих из случайных битов, хранятся без сжатия, как и должно быть.
tar
по умолчанию включает метаданные, включая mtime, в выходные файлы. Это влияет на конечный размер сжатого файла - некоторые mtimes сжимают лучше, чем другие. Изменение команды наgzip -n image
сделает размер вывода детерминированным независимо от mtime (и имени входного файла).