(на основе этого поста и последовавшего обсуждения в чате - также большое спасибо Деннису за TIO!)
Соревнование
Выберите язык, который в настоящее время доступен на сайте TryItOnline , например PowerShell . На этой странице пишите код на этом языке, который не требует ввода, например, когда нажата кнопка « Выполнить» , вывод на этой странице точно такой же, как в поле «Простой URL» при сохранении / сохранении. кнопка нажата вместо.
Для вымышленного примера предположим, что это aaa
был код для решения этой проблемы в PowerShell. Затем должен появиться результат нажатия кнопки « Выполнить с aaa
включенным кодом» , который также является полем «Простой URL» при нажатии кнопки « Сохранить / Сохранить» .https://tio.run/#powershell
https://tio.run/##K8gvTy0qzkjNyfn/PzEx8f9/AA
счет
В результате URL является ваша заявка на этот вызов. Победителем является самый короткий URL, измеренный в байтах. В приведенном выше примере URL-адрес https://tio.run/##K8gvTy0qzkjNyfn/PzEx8f9/AA
представляет собой запрос на 44 байта . Самый короткий URL, который выполняет оставшуюся часть этого задания, побеждает в конкурсе и зарабатывает очки брауни (очки не подлежат обмену). Учитывая, что существует минимально возможная длина, если длина двух представлений одинакова, выигрывает более ранняя отправка.
Генерация URL
Это начало алгоритма генерации URL в хранилище. Вы можете увидеть, как берется основная область кода, какие-либо дополнительные элементы добавляются, строка сдавливается и преобразуется в Base64, а затем ##
добавляется и т. Д. Я не буду вдаваться в подробности; Часть задачи состоит в том, чтобы проанализировать и понять, как генерируются URL-адреса, чтобы использовать любые потенциальные особенности в указанном алгоритме.
Правила / Разъяснения
- Фактический код не должен вводить и выдавать только quine-URL в качестве вывода.
- Это означает , что только текстовые поля , которые должны быть заселены при нажатии на URL являютсяCode
,Header
,Footer
или соответствующим «Compiler флаг» поля; чтоInput
иArguments
поля запрещены и должны оставаться пустыми / неиспользованными. Нажатие кнопки « Выполнить» должно только изменитьOutput
поле. Для этой задачиDebug
поле игнорируется во всех ситуациях. - Обычные правила quine применяются к коду в максимально возможной степени (например, код не может читать свой собственный исходный код через
.code.tio
). - Пожалуйста, включите описание того, как код работает в вашем представлении.
- Отправка «обманчивого» квина, отправка запроса Git pull в репозиторий TIO для создания «хитрого» URL-адреса или ярлыка или чего-либо подобного не допускается.
- Аналогичным образом, отправка запроса извлечения для обновления определенного языка для создания «хитрого» URL не допускается.
- Пожалуйста, будьте добры к серверам Денниса и не злоупотребляйте ими и не пытайтесь использовать эксплойты ради этого вызова.
источник
https://tio.run/##a+a
какие ссылки ссылаются на программу, которая выводит информациюhttps://tio.run/##a+a
, действительно ли это действительно, даже еслиsaveState
бы сгенерированная ссылка была быhttps://tio.run/##a@a
Ответы:
Python 2 , длина URL = 170 байт
Попробуйте онлайн!
Это зависит от трех совпадений:
=
символов.+
символов.источник
Баш ,
174166165157 байтЭто кодирует следующую программу Bash.
Попробуйте онлайн!
Спасибо @ jimmy23013 за игру в гольф на 8 байтов от моего первоначального подхода, за подход, который спас еще один байт, и за игру в гольф еще 8 байтов от этого подхода!
источник
base64 | tr -d \\n
в своем терминале ... Спасибо!Pyth , длина URL = 134 байта
Код:
Попробуйте онлайн!
Использует встроенную в Pyth
.Z
функцию zlib ( ) и встроенную реализацию base64.Как это устроено
Внешняя стадия:
Внутренний этап, получаемый путем замены пробела в строке
J
двойными кавычками:(Жаль, что поле «Ввод» не разрешено , иначе у меня будет 118-байтовое решение .)
источник
PowerShell, 274 байта
Это все благодаря следующему фрагменту:
Попробуйте онлайн!
источник
JavaScript (Node.js) , 214 байтов
Попробуйте онлайн!
источник