... принаймні для певного визначення поняття "самомодифікація".
Завдання
У цих проблемах, ваше завдання полягає в тому, щоб написати три рядки 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
в своїй відповіді в деякому роді, і закликав , щоб пояснити своє рішення.