Inspirado en la hiperprogramación: N + N, N × N, N ^ N, todo en uno .
Gracias a @MartinEnder y @trichoplax por su ayuda en el sandbox.
Definiciones
Hiperquinas
Defina una hiperquina de orden n como un programa completo tipo quine o función P que satisfaga todas las reglas que se aplican a las quines adecuadas y, además, tiene la siguiente estructura.
P es la concatenación de grupos de caracteres ‡ que consisten en n copias del mismo carácter. Cuando se ejecuta P , la salida es la concatenación de los mismos grupos, aumentada por una copia más del carácter.
Ejemplos
En un lenguaje de programación hipotético donde el código fuente
aabbcc
genera la salidaaaabbbccc
, este programa constituye una hiperquina del orden 2 .La definición no requiere que los caracteres de diferentes grupos sean diferentes.
Si el código fuente
aabbcc
genera la salidaaaaabbbbcccc
, el programa es una hiperquina del orden 1 ; El código fuente consta de seis grupos de un solo carácter, la salida de seis pares de caracteres.En GS2 , la impresora vacíos del programa
\n
, y el programa\n
imprime\n\n
. Sin embargo, ni\n
tampoco\n\n
son hiperquinas, ya que no satisfacen todas las propiedades de quinas adecuadas ; ninguna parte del código fuente codifica una parte diferente de la salida.
Cadenas de hiperquina
Defina una cadena hiperquina de longitud n como una secuencia finita de n programas completos o n funciones
(P 1 , ..., P n ) que satisfaga las siguientes restricciones.
Las salidas de P 1 , ..., P n-1 son P 2 , ..., P n , respectivamente.
P 1 , ..., P n son hiperquinas.
Los órdenes de P 1 , ..., P n forman una secuencia estrictamente creciente de enteros adyacentes .
Finalmente, defina una cadena de hiperquina infinita como una secuencia infinita de programas o funciones completas (P 1 , P 2 , ...) de tal manera que cada intervalo inicial (P 1 , ..., P n ) constituya una cadena de cadena de hiperquina n .
Ejemplos
En un lenguaje de programación hipotético donde el código fuente
aabbcc
genera la salidaaaabbbccc
, que, a su vez, genera la salidaaaaabbbbcccc
, el par (aabbcc
,aaabbbccc
) constituye una cadena hiperquina de longitud 2 .Tenga en cuenta que
aaaabbbbcccc
, la salida de la última hiperquina en la cadena, no tiene que producir una salida específica; ni siquiera tiene que ser un código fuente válido.Continuando con el ejemplo anterior, si
aaaabbbbcccc
genera la salidaaaaaabbbbbccccc
, el triplete (aabbcc
,aaabbbccc
,aaaabbbbcccc
) que constituye una cadena hyperquine de longitud 3 .Si este patrón continúa para siempre, la secuencia (
aabbcc
,aaabbbccc
,aaaabbbbcccc
, ...) constituye una cadena infinita hyperquine.El par de programas (
abc
,aabbcc
) con salidas (aabbcc
,aaaabbbbcccc
) no es una cadena de hiperquina, ya que los órdenes de las hiperquinas son ambos 1 , por lo que no forman una secuencia estrictamente creciente.El par de programas (
aabbcc
,aaaabbbbcccc
) con salidas (aaaabbbbcccc
,aaaaabbbbbccccc
) no es una cadena de hiperquina, ya que los órdenes de las hiperquinas son 1 y 4 , por lo que no forman una secuencia de enteros adyacentes.
Reglas
Tarea
En un lenguaje de programación de su elección, escriba una cadena de hiperquina no trivial, es decir, una cadena que conste de al menos 2 hiperquinas.
Como de costumbre, sus programas no pueden tomar ninguna entrada o acceder a su propio código fuente de ninguna forma.
Si su intérprete imprime una nueva línea implícita, sus hiperquines tienen que dar cuenta de esto.
Se aplican todas las lagunas estándar , especialmente las relacionadas con quines.
Tanteo
La cadena de hiperquina más larga gana. Si dos o más envíos están vinculados, el envío entre estos que comienza con la hiperquina más corta (medida en caracteres ‡ ) gana. Como de costumbre, el tiempo de publicación es el desempate final.
‡ Debe usar la misma codificación de caracteres para el código fuente, la salida, el recuento de caracteres y la ejecución. Por ejemplo, el programa Python noprint 42
es un envío UTF-32 de 2 caracteres, ya que el intérprete trata cada byte como un solo carácter. Si su idioma de elección no está basado en caracteres, trate todos los bytes individuales como caracteres.