В этой задаче вы должны написать программу или функцию, которая принимает строку в качестве входных данных и выводит одно из двух возможных значений. Мы назовем одно из этих значений истинным, а одно - ложным . Они не должны быть правдивыми или ложными . Чтобы ответ был действительным, он должен соответствовать четырем дополнительным критериям
Когда вы передаете свою программу себе, она выводит истинное значение.
Если вы передаете свою программу в качестве входных данных любому более старому ответу, он должен вывести правдивый вывод (программы, которую вы передаете).
Если вы передадите какой-либо более старый ответ своему ответу в качестве входных данных, он должен вывести ложные выходные данные (вашей программы).
Там должно быть бесконечное количество строк, которые дают достоверный результат во всех ответах на вызов (включая ваш новый ответ).
Что он будет делать, так это медленно выстраивать цепочку ответов, каждый из которых может определить, будут ли другие программы в цепочке идти до или после нее.
Целью этой задачи является создание списка исходных ограничений, которые применяются к последовательным ответам, что делает каждый из них более сложным, чем предыдущий.
пример
Цепочка (написанная на Хаскеле) может начинаться:
f _ = True
Поскольку старых программ нет, критерии не применяются к этому ответу, ему нужно только вывести одно из двух возможных значений, в этом случае он всегда выводит True
.
После этого может быть ответ:
f x=or$zipWith(==)x$tail x
Который утверждает, что где-то в строке есть символ дважды подряд. Первый ответ не имеет этого свойства, а второй - ( ==
). Таким образом, это правильный следующий ответ.
Особые правила
Вы можете использовать любой язык по своему желанию (который имеет свободно доступную реализацию) столько раз, сколько пожелаете.
Если вы ответили последним, вы должны подождать не менее 7 дней, прежде чем отправлять новый ответ.
Ваша программа может не читать свой собственный источник.
Поскольку 4-е правило чрезвычайно трудно проверить, участвуют ли криптографические функции, такие функции запрещены.
Критерий оценки
Каждый раз, добавляя ответ, вы получаете столько же очков, сколько и его место в цепочке. Например, 5-й ответ принесет писателю 5 баллов. Цель состоит в том, чтобы получить как можно больше очков. Последний ответ даст свой ответчик -∞ баллов. Вероятно, это будет более увлекательно, если вы попытаетесь увеличить свой счет, а не «выиграть» испытание. Я не буду принимать ответ.
Поскольку это цепочка ответов, вы можете отсортировать по
источник
Ответы:
14. Сборка X86 (gcc 6.3), 324 байта
Попробуйте это на Ideone!
Примечание: это будет возвращать ошибку во время выполнения , так как код выхода не равен нулю. Запуск этого в редакторе ideone покажет весь вывод stdout независимо от того, как завершится программа.
"->Hi, Retina!"
"Bye Retina!"
Удовлетворяет:
.
.e
.a
.>
символ.->
.Hi, Retina!
."
.Для будущих ответов:
.
.->
.Hi, Retina!
."
.источник
a
. Эта программа содержитa
.9. Сетчатка , 16 байт
Попробуйте онлайн!
Если вы хотите попробовать свою собственную программу, просто добавьте ее в поле ввода, разделив ее двумя переводами строки. (Если ваша программа содержит два перевода строки, вам придется изменить разделитель между всеми программами и в заголовке TIO.)
Удовлетворяет:
.
e
a
>
символ->
.Hi, Retina!
.Извините, но вы как бы заставили меня набить длину до 16 ...
Без лишних требований:
.
->
.Hi, Retina!
.объяснение
Начать с
.
хорошо, это просто означает, что мы подавляем неявный вывод Retina (при условии, что первая строка имеет конфигурацию, но я не хотел двухстрочную программу). Это означает, что нам нужен явный вывод, но вариант для этого есть>
, так что нам повезло.-
Может идти перед ним , потому что он ничего не делает.Теперь мы можем перейти к самой программе. Самое простое, что нужно сделать, это сопоставить литеральную строку. Это гарантированно отобразится в нашей программе, мы можем легко убедиться, что она не является частью какой-либо существующей программы, и в результате она дает нам номер. Тем не менее, он может потенциально вернуть число больше 1 (так что более двух разных значений). Мы избегаем этого с помощью
0
-limit, который просматривает только первое совпадение и считает, что если он существует. Таким образом,0
гарантируется, что вывод только когда-либо0
или1
(в зависимости от того, содержит ли ввод литеральную строку).Что касается буквенной строки ... ну, нам все еще нужно включить an
e
и ana
... и нам нужно, чтобы строка имела как минимум 11 символов, чтобы мы соответствовали требованиям к длине (получая четный квадрат).Hi, Retina!
случается, чтобы удовлетворить эти требования.источник
13. Perl 5 , 64 байта
Попробуйте онлайн!
Удовлетворяет:
.
.e
.a
.>
символ.->
.Hi, Retina!
."
.Резюме для будущих ответов:
.
.->
.Hi, Retina!
."
.Скрипт проверки Ruby
источник
a
. Эта программа содержитa
.25 октав , 196 байт
Новое требование: во избежание обсуждения вкладок и пробелов вкладки больше не могут использоваться для отступа. Каждой строке по-прежнему нужна вкладка, но она не может быть первым символом в строке.
Проверьте все программы онлайн!
Удовлетворяет:
.
.e
.a
.>
символ.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
кодовая точка второго символа меньше 60.Henry Jams?
как непрерывную подстроку.~
.C
Для будущих ответов:
.
, как и 21-й символ (палиндромное правило)."
, как и 12-й символ (палиндромное правило).',1;6
и табуляция).~
.->
,Hi, Retina!
иHenry Jams?
.|
,+
иC
..
и 2"
в первой строке и!
вHi, Retina!
. Эти символы нельзя использовать где-либо еще, кроме того, что они не используются#$[\]
.Объяснение:
На самом деле было немного сложно сохранить это в 196 байтах, так как в каждой строке есть много байтов, которые являются обязательными.
Первая строка - это просто скаляр, который не выводится, за которым следует комментарий. Вторая строка - это анонимная функция, которая принимает строку в
x
качестве входных данных и выполняет следующие операции:К счастью, операция короткого замыкания
&&
имеет приоритет над&
, и1&&find
это не требует скобок. Иначе мне не удалось бы сыграть в гольф до 196 байтов.источник
5. Python 3 , 64 байта
Попробуйте онлайн! Проверяет, является ли длина ввода идеальным квадратом.
Он был обновлен к тому времени, когда было представлено 18 ответов для поддержки многострочного ввода.
Обновление не повредит цепочке.
Удовлетворяет:
.
e
источник
11. JavaScript (ES6), 36 байт
Попробуйте онлайн!
Удовлетворяет:
.
.e
.a
.>
символ.->
.Hi, Retina!
."
.Для будущих ответов:
.
.->
.Hi, Retina!
."
.источник
23, грамотный Хаскелл , 196 байт
Новое требование: отступы отличные, поэтому каждая строка должна содержать хотя бы один символ табуляции.
Попробуйте онлайн!
Удовлетворяет:
.
.e
.a
.>
символ.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
кодовая точка второго символа меньше 60.Henry Jams?
как непрерывную подстроку.~
.C
Для будущих ответов:
.
, как и 21-й символ (палиндромное правило)."
, как и 12-й символ (палиндромное правило).',1;6
и табуляция).~
.->
.Hi, Retina!
иHenry Jams?
.|
,+
иC
..
и 2"
в первой строке и!
вHi, Retina!
. Эти символы нельзя использовать где-либо еще, кроме того, что они не используются#$[\]
.источник
27. GolfScript , 144 байта
Попробуйте онлайн!
Удовлетворяет:
.
.e
.a
.>
символ.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
кодовая точка второго символа меньше 60.Henry Jams?
как непрерывную подстроку.~
.C
Для будущих ответов:
.␣␣␣␣␣␣␣␣"␣"␣␣␣␣␣␣␣␣.
(вы можете заполнить ␣s).',16;
, или табуляцией, или одним из\x04\x0e\x13\x18\x1d
.->
,Hi, Retina!
иHenry Jams?
.|
,+
иC
.!".#$[\]
запрещены, кроме случаев, когда это необходимо:!
вHi, Retina!
и два.
и два"
в первой строке допускаются.tab
, (то) ,~
.источник
12. V , 36 байтов
Попробуйте онлайн!
Удовлетворяет:
.
.e
.a
.>
символ.->
.Hi, Retina!
."
.Для будущих ответов:
.
.->
.Hi, Retina!
."
.источник
21. Альфук , 676 байт
Удивительно, но большая часть кода не является дополнением.
Попробуйте онлайн!
Удовлетворяет:
.
.e
.a
.>
символ.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
кодовая точка второго символа меньше 60.Henry Jams?
как непрерывную подстроку.~
.Для будущих ответов:
.
, как и 21-й символ (палиндромное правило)."
, как и 12-й символ (палиндромное правило).',1;6
и табуляция).~
.->
.Hi, Retina!
иHenry Jams?
.|
и+
..
и 2"
в первой строке и!
вHi, Retina!
. Эти символы нельзя использовать где-либо еще, кроме того, что они не используются#$[\]
.источник
26. Самомодифицирующийся Brainfuck (SMBF), 256 байт
Третий до последнего символ должен быть вкладкой.
Распечатки
\x00
для правды и выходы\x00\x01
для фальси. Всегда завершается с ошибкой из-за несоответствующей скобки. Это предотвращает динамическое выполнение любого ввода.Эта программа работает только в интерпретаторе Python . НЕ РАБОТАЕТ НА TIO. Это потому, что интерпретатор Python EOF равен NUL.
Чтобы использовать интерпретатор Python, вставьте этот код в строку, где
data
задано значение. Это должно было быть сделано, потому что у TIO нет простого способа набирать или вводить NUL-байты, поэтому я все еще использую Ideone. Затем раскомментируйтеsys.stdin = MySTDIN("<[.<]")
и замените пользовательский ввод тем, с которым вы тестируете.Удовлетворяет:
.
.e
.a
.>
символ.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
кодовая точка второго символа меньше 60.Henry Jams?
как непрерывную подстроку.~
.C
Для будущих ответов:
.
, как и 21-й символ (палиндромное правило)."
, как и 12-й символ (палиндромное правило).',1;6
и табуляция).~
.->
,Hi, Retina!
иHenry Jams?
.|
,+
иC
..
и 2"
в первой строке и!
вHi, Retina!
. Эти символы нельзя использовать где-либо еще, кроме того, что они не используются#$[\]
.источник
28. Грамотный Хаскелл , 256 байт
Попробуйте онлайн!
Тестовый водитель
Удовлетворяет
.
.e
.a
.>
символ.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
кодовая точка второго символа меньше 60.Henry Jams?
как непрерывную подстроку.~
.C
>
в коде и угловые скобки должны быть сбалансированыДля будущих ответов:
.␣␣␣␣␣␣␣␣"␣"␣␣␣␣␣␣␣␣.
(вы можете заполнить ␣s).',16;
, или табуляцией, или одним из\x04\x0e\x13\x18\x1d
.->
,Hi, Retina!
иHenry Jams?
.|
,+
иC
.!".
запрещены, кроме случаев, когда это необходимо:!
вHi, Retina!
и два.
и два"
в первой строке допускаются.#$[\]
может не появиться в программе.tab
, (то) ,~
.источник
1
штраф, когда я раскомментирую эту строку (хотя он может использовать a,; echo
поскольку в выводе нет новой строки)29. PHP с
-r
, 256 байтовИз-за невозможности использования
$
это было довольно сложно, в своем первоначальном решении я неправильно понял правило, но я думаю, что я уже все рассмотрел. Я использовал высокие байтовые символы,~
иeval
для работы вокруг отсутствия приличных переменных PHP. Я чуть не набрал минимальное количество уникальных кодовых точек 96, но подумал, что это может сделать его слишком сложным для некоторых языков.Вот и обратимый шестнадцатеричный дамп для проверки.
Попробуйте онлайн!
Тестовый водитель
Удовлетворяет
.
.e
.a
.>
символ.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
кодовая точка второго символа меньше 60.Henry Jams?
как непрерывную подстроку.~
.C
>
коде должен быть символ, а угловые скобки должны быть сбалансированы.Для будущих ответов:
.␣␣␣␣␣␣␣␣"␣"␣␣␣␣␣␣␣␣.
(вы можете заполнить ␣s).',16;
, или табуляцией, или одним из\x04\x0e\x13\x18\x1d
.->
,Hi, Retina!
иHenry Jams?
.|
,+
иC
.!".
запрещены, кроме случаев, когда это необходимо:!
вHi, Retina!
и два.
и два"
в первой строке допускаются.#$[\]
может не появиться в программе.tab
, (то) ,~
.источник
30. > <> с
-v 0 -v 0
, 324 байта1
правда, пустая строка ложьПопробуйте онлайн!
Удовлетворяет
.
.e
.a
.>
символ.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
кодовая точка второго символа меньше 60.Henry Jams?
как непрерывную подстроку.~
.C
>
коде должен быть символ, а угловые скобки должны быть сбалансированы.Для будущих ответов:
.␣␣␣␣␣␣␣␣"␣"␣␣␣␣␣␣␣␣.
(вы можете заполнить ␣s).',16;
, или табуляцией, или одним из\x04\x0e\x13\x18\x1d
.->
,Hi, Retina!
иHenry Jams?
.|
,+
иC
.!".
запрещены, кроме случаев, когда это необходимо:!
вHi, Retina!
и два.
и два"
в первой строке допускаются.#$[\]
может не появиться в программе.tab
, (то) ,~
.источник
1. Добавить ++ , 7 байтов
Попробуйте онлайн!
Можно также добавить Add ++, прежде чем все станет трудно. Это очень просто перевод первого примера на Add ++.
D,f,@,1
определяет функцию, которая, независимо от заданного аргумента, возвращает1
.источник
4. С накоплением , 10 байтов
Попробуйте онлайн!
Проверяет четность длины программы. Анонимная функция, которая возвращает
1
для «истинных» входов и0
для «ложных».Удовлетворяет:
.
e
источник
f out
тем, что вы хотите проверить. Завернутые в одинарные кавычки, избегайте одинарных кавычек, удвоив их24, SNOBOL4 (CSNOBOL4) , 256 байтов
Попробуйте онлайн!
Распечатывает
1
для правды и ничего не выводит для фальси.Удовлетворяет:
.
.e
.a
.>
символ.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
кодовая точка второго символа меньше 60.Henry Jams?
как непрерывную подстроку.~
.C
Для будущих ответов:
.
, как и 21-й символ (палиндромное правило)."
, как и 12-й символ (палиндромное правило).',1;6
и табуляция).~
.->
,Hi, Retina!
иHenry Jams?
.|
,+
иC
..
и 2"
в первой строке и!
вHi, Retina!
. Эти символы нельзя использовать где-либо еще, кроме того, что они не используются#$[\]
.источник
2. Треугольность , 17 байтов
Попробуйте онлайн!
Проверяет, является ли первый символ точкой (
.
).источник
.3
или подобное будет работать8. R , 64 байта
Попробуйте онлайн!
Удовлетворяет:
.
e
a
>
символ->
в одной из своих строк.источник
10. Сомма , 64 байта
Попробуйте онлайн!
Проверьте это онлайн!
Удовлетворяет:
.
e
a
>
символ->
.Hi, Retina!
.Для будущих ответов:
.
->
.Hi, Retina!
.источник
7. Шепот , 66 байт
Попробуйте онлайн!
Выходы либо
True
илиFalse
. Обратите внимание на завершающую новую строку.Удовлетворяет:
.
e
a
>
символисточник
∈
это многобайтовый символ, и я полагаю, что представление Python подсчитывает байты.3. Желе , 5 байтов
Попробуйте онлайн!
Проверяет, содержит ли ввод
e
символ. Изменился с”
на,e
потому что это казалось несправедливым по отношению к языкам без этого символа. И, чтобы проверить, вот hexdump:Удовлетворяет:
.
e
источник
18. Python 3 , 144 байта
Попробуйте онлайн!
Выводится,
True
если длина ввода не менее 28 строк, вFalse
противном случае.Удовлетворяет:
.
.e
.a
.>
символ.->
.Hi, Retina!
."
.?
.|
.+
.Для будущих ответов:
.
.->
.Hi, Retina!
."
, как и двенадцатый символ (палиндромное правило).?
.|
.+
.источник
16: четвертьфинал , 64
1 правдива,
Попробуйте онлайн!
Кстати, отступ не делает ничего.
Удовлетворяет:
.
.e
.a
.>
символ.->
.Hi, Retina!
."
.?
.|
Для будущих ответов:
.
.->
.Hi, Retina!
."
, как и двенадцатый символ (палиндромное правило).?
.|
источник
a
, это из-за того, как pyth принимает ввод. Похоже, что ОП совершил ошибку, написав или проанализировав собственный код. Два более ранних ответа также имеют эту проблему.15. Python 3, 64 байта
Попробуйте онлайн!
Удовлетворяет:
.
.e
.a
.>
символ.->
.Hi, Retina!
."
.?
.Для будущих ответов:
.
.->
.Hi, Retina!
."
.?
.источник
31. Октава , 324 байта
Новое требование: Все печатные ASCII, которые ранее не были запрещены, должны быть частью кода. Полный список:
!"%&'()*+,-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`abcdefghijklmnopqrstuvwxyz{|}~
.Попробуйте онлайн!
e
.a
.>
символ.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
кодовая точка второго символа меньше 60.Henry Jams?
как непрерывную подстроку.~
.C
>
коде должен быть символ, а угловые скобки должны быть сбалансированы.!"%&'()*+,-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`abcdefghijklmnopqrstuvwxyz{|}~
Для будущих ответов:
.␣␣␣␣␣␣␣␣"␣"␣␣␣␣␣␣␣␣.
(вы можете заполнить ␣s).',16;
, или табуляцией, или одним из\x04\x0e\x13\x18\x1d
.->
,Hi, Retina!
иHenry Jams?
.!".
запрещены, кроме случаев, когда это необходимо:!
вHi, Retina!
и два.
и два"
в первой строке допускаются.#$[\]
может не появиться в программе.tab
, (то) ,~
.!"%&'()*+,-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`abcdefghijklmnopqrstuvwxyz{|}~
.источник
6. Pyth , 16 байт
Попробуй это здесь!
Проверяет, содержит ли вход
a
. Выходы либо:[True, True, True, True, True, True, True, True, True, True, True, True, True]
для правдыили
[False, False, False, False, False, False, False, False, False, False, False, False, False]
для фальшиУдовлетворяет:
.
e
a
источник
a
находится ли значение в первой строке. Как минимум 2 ответа неверны, потому что это не соответствует тексту этого ответа (и люди не проверяют свои ответы).20. Желе , 100 байт
Этот код проверяет, есть или нет
Henry Jams?
. Возвращается1
за правду,0
за ложь.Попробуйте онлайн!
Удовлетворяет:
.
.e
.a
.>
символ.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
кодовая точка второго символа меньше 60.Henry Jams?
как непрерывную подстроку.Для будущих ответов:
.
, как и 21-й символ (палиндромное правило).->
.Hi, Retina!
."
, как и двенадцатый символ (палиндромное правило).?
.|
.+
.!"#$.[\]
..
и 2"
в первой строке и!
вHi, Retina!
. Эти символы нельзя использовать где-либо еще, кроме того, что они не используются#$[\]
.Henry Jams?
как непрерывную подстроку.источник
22, октава , 100 байт
Резюме: теперь
C
в коде должна быть прописная буква .Попробуйте онлайн!
Удовлетворяет:
.
.e
.a
.>
символ.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
кодовая точка второго символа меньше 60.Henry Jams?
как непрерывную подстроку.~
.C
Для будущих ответов:
.
, как и 21-й символ (палиндромное правило)."
, как и 12-й символ (палиндромное правило).',1;6
и табуляция).~
.->
.Hi, Retina!
иHenry Jams?
.|
,+
иC
..
и 2"
в первой строке и!
вHi, Retina!
. Эти символы нельзя использовать где-либо еще, кроме того, что они не используются#$[\]
.источник
19 октав , 196 байт
Примечание: я внес изменения в код, чтобы исправить ошибку. Единственным изменением было включение правила палиндрома. Это позволяет избежать ложного положительного ответа 10.
Большинство требований до сих пор можно легко обойти, используя комментарии и скрытые строки, что упрощает добавление ответов. Я подумал, что сделаю это немного сложнее, запретив вместо этого некоторых персонажей.
Попробуйте онлайн!
Удовлетворяет:
.
.e
.a
.>
символ.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
кодовая точка второго символа меньше 60.Для будущих ответов:
.
, как и 21-й символ (палиндромное правило).->
.Hi, Retina!
."
, как и двенадцатый символ (палиндромное правило).?
.|
.+
.!"#$.[\]
..
и 2"
в первой строке и!
вHi, Retina!
. Эти символы нельзя использовать где-либо еще, кроме того, что они не используются#$[\]
.источник
This will probably be more fun if you try to maximize your own score rather than "win" the challenge.
.
до того, как ожидается ответ Поскольку первая строка - палиндром, она оставляет только 3 точки, что практически невозможно в большинстве ООП многословных языков. также 5"
и `` делает практически невозможным создание многострочных строк