Inspirado pela hiperprogramação: N + N, N × N, N ^ N, tudo em um .
Agradecemos a @MartinEnder e @trichoplax por sua ajuda na sandbox.
Definições
Hyperquines
Defina uma hiperquina de ordem n como um programa completo ou função P semelhante a uma solução que satisfaça todas as regras que se aplicam a soluções adequadas e, além disso, possui a seguinte estrutura.
P é a concatenação de caracteres ‡ grupos que consistem de n cópias da mesma natureza. Quando P é executado, a saída é a concatenação dos mesmos grupos, aumentada por mais uma cópia do caractere.
Exemplos
Em uma linguagem de programação hipotética em que o código fonte
aabbcc
gera a saídaaaabbbccc
, este programa constitui uma hiperquina de ordem 2 .A definição não requer que os caracteres de grupos diferentes sejam diferentes.
Se o código fonte
aabbcc
gerar a saídaaaaabbbbcccc
, o programa é uma hiperquina da ordem 1 ; o código fonte consiste em seis grupos de caracteres únicos, a saída de seis pares de caracteres.No GS2 , o programa vazio é impresso
\n
e o programa é\n
impresso\n\n
. No entanto,\n
nem\n\n
são nem hiperquinas, pois não satisfazem todas as propriedades de quines apropriadas ; nenhuma parte do código-fonte codifica uma parte diferente da saída.
Cadeias de hiperquinas
Defina uma cadeia hiperquina de comprimento n como uma sequência finita de n programas completos ou n funções
(P 1 ,…, P n ) que atenda às seguintes restrições.
As saídas de P 1 ,…, P n-1 são P 2 ,…, P n , respectivamente.
P 1 ,…, P n são hiperquinas.
As ordens de P 1 ,…, P n formam uma sequência estritamente crescente de números inteiros adjacentes .
Finalmente, definir uma cadeia hyperquine infinito como uma sequência infinita de programas completos ou funções (P 1 , P 2 , ...) de tal modo que cada intervalo inicial (P 1 , ..., P n ) constitui uma cadeia de comprimento hyperquine n .
Exemplos
Em uma linguagem de programação hipotética em que o código fonte
aabbcc
gera a saídaaaabbbccc
, que por sua vez gera a saídaaaaabbbbcccc
, o par (aabbcc
,aaabbbccc
) constitui uma cadeia hiperquina de comprimento 2 .Observe que
aaaabbbbcccc
- a saída da última hiperquina na cadeia - não precisa produzir uma saída específica; nem precisa ser um código fonte válido.Continuando com o exemplo anterior, se
aaaabbbbcccc
gera a saídaaaaaabbbbbccccc
, o tripleto (aabbcc
,aaabbbccc
,aaaabbbbcccc
) constitui uma cadeia de comprimento hyperquine 3 .Se esse padrão continuar para sempre, a seqüência (
aabbcc
,aaabbbccc
,aaaabbbbcccc
, ...) constitui uma cadeia hyperquine infinito.O par de programas (
abc
,aabbcc
) com saídas (aabbcc
,aaaabbbbcccc
) não é uma cadeia hiperquina, uma vez que as ordens das hiperquinas são ambas 1 , portanto, elas não formam uma sequência estritamente crescente.O par de programas (
aabbcc
,aaaabbbbcccc
) com saídas (aaaabbbbcccc
,aaaaabbbbbccccc
) não é uma cadeia hiperquina, uma vez que as ordens das hiperquinas são 1 e 4 , portanto, elas não formam uma sequência de números inteiros adjacentes.
Regras
Tarefa
Em uma linguagem de programação de sua escolha, escreva uma cadeia de hiperquinas não trivial, ou seja, uma cadeia que consiste em pelo menos 2 hiperquinas.
Como de costume, seus programas não podem receber nenhuma entrada ou acessar seu próprio código-fonte de qualquer forma.
Se o seu intérprete imprime uma nova linha implícita, suas hiperquinas precisam ser responsáveis por isso.
Todas as brechas padrão - especialmente aquelas relacionadas a quines - se aplicam.
Pontuação
A maior cadeia de hiperquinas vence. Se duas ou mais submissões estiverem vinculadas, a submissão entre essas que começa com a hiperquina mais curta (medida em caracteres ‡ ) vence. Como sempre, o tempo de postagem é o desempate final.
‡ Você deve usar a mesma codificação de caracteres para código fonte, saída, contagem de caracteres e execução. Por exemplo, o programa Python nãoprint 42
é um envio UTF-32 de 2 caracteres, pois o intérprete trata cada byte como um único caractere. Se o seu idioma de escolha não for baseado em caracteres, trate todos os bytes individuais como caracteres.