... przynajmniej dla pewnej definicji „samodzielnej modyfikacji”.
Zadanie
W tym wyzwaniem, twoim zadaniem jest napisać trzy struny A
, B
i C
które spełniają następujące właściwości.
Ciąg
B
ma długość co najmniej 1.Dla każdego
n ≥ 0
ciąg jest prawidłowym programem (co oznacza pełną wersję programu lub definicji funkcji) w wybranym języku programowania. Powtórzenie oznacza Indeks górny, więc oznacza to, że ciągi , , , itd. Każdy program trwa jeden ciąg jako dane wejściowe i zwraca jeden ciąg jako wyjście.ABnC
AC
ABC
ABBC
ABBBC
Dla każdego
m, n ≥ 0
, jeśli program jest uruchamiany z wejściem , zwraca . W przypadku danych wejściowych nie w tym formularzu program może zrobić wszystko, w tym awarię.ABmC
ABnC
ABm*n+1C
Kilka przykładów w formacie 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
Zasady i punktacja
Twój wynik to łączna długość A
iC
, im niższy wynik, tym lepiej. Zauważ, że chociaż B
nie jest liczony do wyniku, musi on zostać wygenerowany przez A
i C
jak w pierwszym przykładzie.
Standardowe luki są niedozwolone. Programy nie mają bezpośredniego lub pośredniego dostępu do własnego kodu źródłowego (z wyjątkiem sytuacji, gdy podano go jako dane wejściowe). Które są wymagane do identyfikacji ciągi A
, B
a C
w swojej odpowiedzi w jakiś sposób, i zachęcał, aby wyjaśnić swoje rozwiązanie.