Выведите ту же длину Lorem ipsum, в которой находится ваш код!
Правила:
- Код не может быть идентичным выводу
- Нет библиотек сжатия
- Кратчайшая программа за две недели выигрывает
- Никакое использование сети, чтение файла и другие уловки, которые с помощью одного могли бы легко решить любую проблему гольф-кода (с
eval
,exec
и т. Д.)
пример
Your code with length 25.
Выход
Lorem ipsum dolor sit ame
code-golf
string
compression
self-referential
randomra
источник
источник
Ответы:
GolfScript (122 или 138 байт)
Кажется, в правилах есть очень небольшая двусмысленность: что именно означает «результат»? Многие программы предполагают, что «выходные данные» программы не включают в себя заключительный символ новой строки, который предназначен для того, чтобы следующая строка ввода оболочки начиналась на отдельной строке.
составляет 122 байта и выводит 122 байта ipsum lorum и завершающий перевод строки.
составляет 138 байт и производит 138 байт ipsum lorum без завершающего символа новой строки.
источник
rot13 (1)
я удивлен, что никто не придумал это раньше :)
и в качестве бонуса, очень простое решение Perl
Perl (252)
источник
...ExerciTationU/;s,\S\K[A-Z], \l$&,g;print
print'LoremIpsumDolor...NostrudExerciT'=~s,\S\K[A-Z], \l$&,gr
very simple perl solution
больше.Гольфскрипт - 161
Изменить: вывод решения Python отличается от его собственной длины, так что я сделал лучше с GolfScript. Это также мой первый ответ на гольскрипт.
Я не уверен, как это здесь закодировано, так что вот ссылка на файл.
источник
Python 2 - 332
Если кому-то все равно, вот неполный список улучшений:
1181 -> 630 -> 549 -> 510 -> 456 -> 416 -> 381 -> 332
источник
Математика, 8
Я делаю предположение, что визуально идентичный вывод является приемлемым. Поэтому я использую этот символ вместо ASCII «i», что приводит к автоматической сортировке двух символов в правильном порядке:
источник
Баш, 156
Поскольку использование настоящей «библиотеки сжатия» запрещено,
base64
вместо этого я буду злоупотреблять coreutils. (xxd -r
для декодирования представления)Я сгенерировал приведенный выше код с помощью этой программы PHP:
источник
cat $0
.Mathematica
4746Не уверен, что это честная игра. Mathematica имеет «полный» текст Lorem ipsum в своих данных примера. Следующее просто говорит Mathematica взять строку определенной длины из встроенного примера Lorem Ipsum.
Редактировать :
Оригинал :
источник
PHP, 75 (динамический)
Пример вывода:
Он не использует сжатие, но он нарушает правила. Много.
Вы можете добавить символы мусора в конец примера и по-прежнему иметь правильный вывод (до 2k + символов).
PHP, 59 (статический)
То же, что и выше, но использует фиксированный размер и будет неправильным, если будут добавлены дополнительные символы.
источник
Окна пакетные,
878720Протестировано на Windows XP и Windows 7, но должно работать для каждого cmd с расширениями (IIRC, Windows NT и выше).
CMD /V:ON /C batchfile
Должен запускаться с использованием включения отложенного расширения переменных, но я предпочитаю, чтобыSETLOCAL EnableDelayedExpansion
в пакетном файле не было кода, удобного для работы с кодгольфом .источник
J (144)
Было бы 128, если бы мне не нужно было делать правильный сценарий, чтобы вы могли измерить результат.
Как это работает: в тексте только 23 уникальных символа, поэтому это можно представить в 5-байтовой кодировке. Символы в закодированной строке преобразуются в их числа ASCII (
a.i.
), затем каждое из чисел превращается в их представление base-2 (#:
), затем биты группируются в группы по пять (_5>\,
), затем каждая из этих групп преобразуется его значение (#.
), и они используются в качестве индекса в таблице поиска. ({~
).Таблица поиска фактически необходимо несколько попыток, так как строка символов J не может содержать
\n
,\r
или\0
.HexDump:
источник
('VLI., ',97}.a.)
в некотором смысле, она не испортит другой литерал.