Натхненний гіперпрограмуванням: N + N, N × N, N ^ N все в одному .
Дякуємо @MartinEnder та @trichoplax за допомогу в пісочниці.
Визначення
Гіперкіни
Визначте гіперкіну порядку n як повну програму або функцію P , подібну квінові , яка задовольняє всім правилам, що стосуються належних квінок, і, крім того, має таку структуру.
Р являє собою об'єднання символів ‡ груп, що складаються з п копій одного і того ж символу. Коли P виконується, вихід - це конкатенація тих самих груп, що доповнюється ще однією копією символу.
Приклади
У гіпотетичній мові програмування, де вихідний код
aabbccгенерує вихідaaabbbccc, ця програма являє собою гіперкіну порядку 2 .Визначення не вимагає, щоб символи різних груп були різними.
Якщо вихідний код
aabbccгенерує вихідaaaabbbbcccc, програма є гіперквіном порядку 1 ; вихідний код складається з шести одно символьних груп, вихід із шести пар символів.У GS2 порожня програма друкується
\n, а програма\nдрукується\n\n. Однак\nні\n\nгіперквіни, ні вони не є, оскільки вони не задовольняють усім властивостям належних квінок ; жодна частина вихідного коду не кодує іншу частину виводу.
Гіперкінні ланцюги
Визначте ланцюг гіперквінів довжиною n як кінцеву послідовність n повних програм або n функцій
(P 1 ,…, P n ), яка задовольняє наступним обмеженням.
Виходи P 1 ,…, P n-1 - P 2 ,…, P n відповідно.
P 1 ,…, P n - гіперквіни.
Порядки P 1 ,…, P n утворюють суворо зростаючу послідовність суміжних цілих чисел.
Нарешті, визначте нескінченний ланцюг гіперквінів як нескінченну послідовність повних програм або функцій (P 1 , P 2 , ...) таким чином, що кожен початковий інтервал (P 1 , ..., P n ) являє собою ланцюг гіперквінів довжиною n .
Приклади
У гіпотетичній мові програмування, де вихідний код
aabbccгенерує висновокaaabbbccc, який, у свою чергу, генерує вихідaaaabbbbcccc, пара (aabbcc,aaabbbccc) утворює ланцюг гіперквінів довжиною 2 .Зауважте, що
aaaabbbbcccc- вихід останнього гіперквіну в ланцюзі - не повинен давати конкретний вихід; він навіть не повинен бути дійсним вихідним кодом.Продовжуючи попередній приклад, якщо
aaaabbbbccccформує вихідний сигналaaaaabbbbbccccc, триплет (aabbcc,aaabbbccc,aaaabbbbcccc) являє собою hyperquine ланцюг довжиною 3 .Якщо ця картина триває вічно, послідовність (
aabbcc,aaabbbccc,aaaabbbbcccc...) являє собою нескінченний ланцюг hyperquine.Пара програм (
abc,aabbcc) з виходами (aabbcc,aaaabbbbcccc) не є ланцюгом гіперхінів, оскільки порядки гіперквінерів є обома 1 , тому вони не утворюють суворо зростаючої послідовності.Пара програм (
aabbcc,aaaabbbbcccc) з виходами (aaaabbbbcccc,aaaaabbbbbccccc) не є ланцюгом гіперхінів, оскільки порядки гіперквіней дорівнює 1 і 4 , тому вони не утворюють послідовності суміжних цілих чисел.
Правила
Завдання
У мові програмування за вашим вибором, написати нетривіальний hyperquine ланцюг, тобто ланцюг , яка складається , щонайменше , 2 hyperquines.
Як завжди, ваші програми можуть не приймати жодного вводу чи доступу до власного вихідного коду в будь-якій формі.
Якщо ваш перекладач друкує неявну нову лінію, ваші гіперквіни повинні це враховувати.
Застосовуються всі стандартні лазівки, особливо ті, що стосуються королеви.
Оцінка балів
Виграє найдовший ланцюг гіперкінів . Якщо два чи більше подань зв'язані, подання серед них, що починається з найкоротшого гіперквіну (вимірюється символами ‡ ), виграє. Як завжди, час публікації - це остаточний перелом.
‡ Ви повинні використовувати одне й те саме кодування символів для вихідного коду, виводу, кількості символів та виконання. Наприклад, програма Python print 42- це не двозначне подання UTF-32, оскільки інтерпретатор розглядає кожен байт як один символ. Якщо ваша мова вибору не базується на символах, розглядайте всі байти як символи.