Дистрибутив Debian Linux (и дистрибутивы на основе Debian, такие как Ubuntu, Kali и другие) используют менеджер пакетов, называемый APT. Для установки программы foo
вы должны ввести в терминал
sudo apt-get install foo
Одно маленькое пасхальное яйцо APT выглядит следующим образом
apt-get moo
Который после ввода даст следующий вывод
(__)
(oo)
/------\/
/ | ||
* /\---/\
~~ ~~
..."Have you mooed today?"...
Вы должны написать программу, которая производит этот EXACT-вывод в максимально возможном количестве байтов. (включая завершающие пробелы и новую строку)
Вот тот же вывод с \n
добавленным для представления символов новой строки и a *
для представления завершающих пробелов
(__)*\n
(oo)*\n
/------\/*\n
/ | ||***\n
* /\---/\*\n
~~ ~~***\n
..."Have you mooed today?"...\n
Как и просили в комментариях, вот md5sum mooing.
35aa920972944a9cc26899ba50024115 -
apt-get moo|md5sum
?apt-get moo
PОтветы:
Баш, 95 байт
Выше приведен обратимый hexdump. Чтобы создать файл, выполните
вставьте hexdump и нажмите Enter, затем Ctrl+ D.
Чтобы запустить созданный файл, выполните
Подойдет любое другое имя файла.
Я выбрал зопфли в качестве компрессора, так как он совместим с программой Coreutils zcat и обеспечивает лучшее сжатие, чем gzip, bzip2 и xz.
zcat<<''
будет читать следующие строки (до EOF) и кормить их в качестве ввода дляzcat
.Обратите внимание, что zcat выведет предупреждение (поскольку я удалил контрольную сумму сжатого файла), как и bash (поскольку HEREDOC не завершается пустой строкой). Эти предупреждения печатаются в STDERR (подавляется
2>&-
), что разрешено по умолчанию для консенсуса в Meta .источник
CJam, 96
Это использует много неприятных байтов, поэтому вот шестнадцатеричный дамп:
Вы можете запустить файл с помощью интерпретатора Java; может возникнуть необходимость использовать кодировку ISO-8859-1, например:
java -Dfile.encoding=ISO-8859-1 …
Попробуйте онлайн
Эквивалентная (и намного более длинная) версия ASCII:
Попробуйте онлайн
Объяснение:
Есть 7 символов , которые имеют повторы:
_o-|~.
. Каждый из них может быть закодирован как число n от 0 до 6. Для каждой повторяющейся последовательности я кодирую как индекс (n) символа, так и количество повторений (k) в одном байте:,2 * (k * 7 + n)
записанный как символ с этим код. И я кодирую любые отдельные символы, как2 * c + 1
, где с код ASCII. Все идет в исходной строке, а остальная часть программы декодирует ее:Старая версия (109):
Попробуйте онлайн
источник
Пиф, 100
Попробуйте онлайн: Демонстрация
r"string"9
run-length-декодирует строку.редактировать:
Вот решение на 97 символов: Демонстрация . Очень вероятно, что это также 97 байтов (в ISO-8859-1). Но слишком устал для записи байтов и объяснений. Завтра вечером, наверное.
источник
GolfScript (107 байт)
Это очень простая кодировка: символы новой строки заменяются на
^
, а пробелы кодируются по длине строки . Результат содержит некоторые непечатаемые символы, поэтому я представляю его здесь какxxd
вывод:Онлайн демо
Обратите внимание, что это на один символ короче соответствующего кода CJam. Компромисс используется
'
в качестве разделителя для основной строки (сохраняя два\
s для экранирования"
), сохраняя ai
для преобразования значений символов в целые числа в цикле декодирования и получая свободную конечную новую строку; vs наличие символьных литералов для замены односимвольных строковых литералов.Поскольку этот вопрос был кратко помечен версия для печати-ASCIIЯ также сделал версию только с (108) печатными символами:
Вместо того , чтобы кодирующие вводная длину пространств , как символы
^A
до^R
(и кодирования ,^J
как^
столкновения во избежание), он оставляет нетронутый и новую строку кодирует вводную длину , какI
кY
.Кстати, моя универсальная программа GolfScript Kolmogorov производит программу размером 120 байт.
источник
Луа,
186178 байт8 байтов сэкономлено благодаря предложению @DJ McMayhem
Ungolfed:
источник
a=repeat(" ",17)
> <> , 217 байт
К сожалению, это довольно скучный ответ. Он начинается с чтения строки, которая вытягивает всю корову, с символами новой строки, добавляемыми в стек к значению 10 (a). Затем он входит в петлю, которая просто вытягивает корову.
Первоначально я сделал цикл для добавления набора пробелов, но на самом деле это было дороже, чем просто вставлять пробелы.
РЕДАКТИРОВАТЬ: Забыл, что рыба написана как "> <>"
источник
PowerShell, 144 байта
Приведенный выше код будет работать правильно в средах, которые печатают символы новой строки в стиле Unix (
\n
). Он производит правильный вывод, например, с помощью Pash в Linux.С математической точки зрения для PowerShell
$a
оптимальным является наличие 8 пробелов для переменной, так как меньше означает слишком много дополнительных пробелов между переменной и коровой, чтобы иметь$b
смысл, а больше означает, что мы не можем удвоить первые две строки для глава.источник
\r
возврат каретки,\n
перевод строки. Вместе\r\n
образует новую строку в Windows. 2. PowerShell не только для Windows. Я проверил ваш код с помощью Pash (реализация Windows PowerShell для Mono с открытым исходным кодом), и на выходе есть соответствующий хэш MD5. 3. Из-за вышеизложенного я позволил себе опубликовать ваш пост. Если вы не согласны с этим, пожалуйста, заново вики.\r\n
и\n
, но, как я уже сказал, я не могу получить правильный MD5 на Windows без чего-то вопиющего. Спасибо за это редактирование, хотя. Сначала я тоже услышал о Паше, так что спасибо за это. Интересно, как сложно это было бы построить под Cygwin ... ;-)Молекула , 145 байт
Я впервые пытаюсь сжать ASCII art: P
источник