Ispirato da Hyperprogramming: N + N, N × N, N ^ N tutto in uno .
Grazie a @MartinEnder e @trichoplax per il loro aiuto nella sandbox.
definizioni
Hyperquines
Definire un hyperquine di ordine n come un programma completo simile a un quine o una funzione P che soddisfa tutte le regole che si applicano ai quines corretti e, inoltre, ha la seguente struttura.
P è la concatenazione di gruppi di caratteri ‡ costituiti da n copie dello stesso personaggio. Quando viene eseguito P , l' output è la concatenazione degli stessi gruppi, aumentata di un'altra copia del personaggio.
Esempi
In un ipotetico linguaggio di programmazione in cui il codice sorgente
aabbccgenera l'outputaaabbbccc, questo programma costituisce un'iperquina di ordine 2 .La definizione non richiede che i caratteri di gruppi diversi siano diversi.
Se il codice sorgente
aabbccgenera l'outputaaaabbbbcccc, il programma è un hyperquine di ordine 1 ; il codice sorgente è costituito da sei gruppi di caratteri singoli, l'output di sei coppie di caratteri.In GS2 , il programma vuoto viene stampato
\ne il programma\nstampa\n\n. Tuttavia,\nné lo\n\nsono né le hyperquine, dal momento che non soddisfano tutte le proprietà delle quine appropriate ; nessuna parte del codice sorgente codifica una parte diversa dell'output.
Catene iperquine
Definire una catena hyperquine di lunghezza n come sequenza finita di n programmi completi o n funzioni
(P 1 , ..., P n ) che soddisfa i seguenti vincoli.
Le uscite di P 1 , ..., P n-1 sono rispettivamente P 2 , ..., P n .
P 1 , ..., P n sono iperquine.
Gli ordini di P 1 , ..., P n formano una sequenza strettamente crescente di numeri interi adiacenti .
Infine, definire una catena iperquina infinita come una sequenza infinita di programmi o funzioni completi (P 1 , P 2 , ...) in modo tale che ogni intervallo iniziale (P 1 , ..., P n ) costituisca una catena iperquina di lunghezza n .
Esempi
In un ipotetico linguaggio di programmazione in cui il codice sorgente
aabbccgenera l'outputaaabbbccc, che a sua volta genera l'outputaaaabbbbcccc, la coppia (aabbcc,aaabbbccc) costituisce una catena hyperquine di lunghezza 2 .Si noti che
aaaabbbbcccc- l'output dell'ultima hyperquine nella catena - non deve produrre un output specifico; non deve nemmeno essere un codice sorgente valido.Continuando l'esempio precedente, se
aaaabbbbccccgenera l'uscitaaaaaabbbbbccccc, la tripletta (aabbcc,aaabbbccc,aaaabbbbcccc) costituisce una catena hyperquine di lunghezza 3 .Se questo modello continua sempre, la sequenza (
aabbcc,aaabbbccc,aaaabbbbcccc, ...) costituisce una catena infinita hyperquine.La coppia di programmi (
abc,aabbcc) con output (aabbcc,aaaabbbbcccc) non è una catena hyperquine, poiché gli ordini delle hyperquine sono entrambi 1 , quindi non formano una sequenza strettamente crescente.La coppia di programmi (
aabbcc,aaaabbbbcccc) con output (aaaabbbbcccc,aaaaabbbbbccccc) non è una catena hyperquine, poiché gli ordini delle hyperquine sono 1 e 4 , quindi non formano una sequenza di numeri interi adiacenti.
Regole
Compito
In un linguaggio di programmazione a tua scelta, scrivi una catena di hyperquine non banale, cioè una catena che consiste di almeno 2 hyperquine.
Come al solito, i tuoi programmi non possono accettare alcun input o accedere al proprio codice sorgente in qualsiasi forma.
Se il tuo interprete stampa una nuova riga implicita, le tue hyperquine devono tenerne conto.
Si applicano tutte le scappatoie standard , in particolare quelle relative alle quine.
punteggio
Vince la catena iperquina più lunga . Se due o più invii sono in parità, l'inoltro tra questi che inizia con l'iperquina più breve (misurata in caratteri ‡ ) vince. Come al solito, il tempo di pubblicazione è l'ultimo tiebreaker.
‡ È necessario utilizzare la stessa codifica dei caratteri per codice sorgente, output, conteggio dei caratteri ed esecuzione. Ad esempio, il programma Python nonprint 42 è un invio UTF-32 a 2 caratteri, poiché l'interprete tratta ogni byte come un singolo carattere. Se la tua lingua preferita non è basata sui caratteri, tratta tutti i singoli byte come caratteri.