... по крайней мере, для некоторого определения "само-модификации".
Задание
В этих проблемах, ваша задача состоит в том, чтобы написать три строки A
, B
и C
которые удовлетворяют следующие свойства.
Строка
B
имеет длину не менее 1.Для каждого
n ≥ 0
, строка является допустимой программой (имеется в виду полностью исполняемая программа или определение функции) на выбранном вами языке программирования. Индекс указывает повторение, поэтому это означает , что строки , , , и т.д. Каждая программа занимает одну строку в качестве входных данных, и возвращает одну строку в качестве вывода.ABnC
AC
ABC
ABBC
ABBBC
Для любого
m, n ≥ 0
, если программа запускается с вводом , она возвращается . Для входных данных, не имеющих этой формы, программа может делать все что угодно, включая сбой.ABmC
ABnC
ABm*n+1C
Некоторые примеры в формате program(input) -> output
:
AC(AC) -> ABC
ABC(AC) -> ABC
ABBBBBC(AC) -> ABC
AC(ABC) -> ABC
AC(ABBBBC) -> ABC
ABC(ABC) -> ABBC
ABBC(ABC) -> ABBBC
ABBBBC(ABBBC) -> ABBBBBBBBBBBBBC
ABBBC(ABBBBBBC) -> ABBBBBBBBBBBBBBBBBBBC
Правила и оценки
Ваша оценка - это общая длина A
иC
, чем ниже, тем лучше. Обратите внимание, что хотя B
счет не учитывается, он должен быть получен A
и C
как в первом примере.
Стандартные лазейки запрещены. Программам не разрешен прямой или косвенный доступ к их собственному исходному коду (кроме случаев, когда они передаются в качестве входных данных). Вы должны определить строки A
, B
и C
в своем ответе каким-то образом, и рекомендуется объяснить свое решение.