Su trabajo es crear la quine iterativa de período más largo , donde la longitud de cada programa en la secuencia está limitada por 500 bytes.
Es decir, si repite los siguientes pasos:
- Comience con su programa inicial
- Ejecuta el programa actual
- Regrese al paso 2
Eventualmente volverá a su programa original. El número de programas en el ciclo es su puntaje, que está tratando de maximizar.
Ninguno de los programas puede generar errores. Cada programa también debe ejecutarse de la misma manera (por ejemplo, no hay diferentes versiones, implementaciones, opciones de compilación, plataformas, etc.) (EDITAR: Sí, cualquier estado externo como el de un generador de números pseudoaleatorios se incluyó en el último declaración. El estado externo debe "restablecerse" después de cada ejecución. Si utiliza números aleatorios verdaderos, se supone el peor de los casos).
Lo que separa este desafío del Quine iterativo de período más largo (que no sea 100 vs 500) es que cada programa en el ciclo también debe tener 500 bytes o menos. Esto significa que el ciclo más largo posible es (256 ^ 501 - 1) / 255 o menos. Eso, por supuesto, es un gran número, pero no tan grande en términos de cuánto código se necesita para calcular. Por lo tanto, el desafío consiste en utilizar tantas posibilidades (256 ^ 501 - 1) / 255 como sea posible, no un desafío de castores ocupados.
Los programas no pueden acceder a su propio código fuente. Sin embargo, se permite un programa vacío si lo desea (siempre y cuando siga las otras reglas).
Dado que verificar los programas manualmente sería difícil, puede calcular el puntaje utilizando métodos teóricos. Debe incluir una explicación del puntaje y la corrección con su programa. Si no puede calcular el puntaje, puede utilizar un límite inferior del número de programas en el ciclo como puntaje de facto. Puede actualizar esto a medida que encuentre mejores límites inferiores, o si encuentra el puntaje real exacto.
Este es un desafío de código , por lo que gana la puntuación más alta.
EDITAR: Se recomienda que escriba cuál es su puntaje en notación científica, para que las respuestas sean más fácilmente comparables. Está perfectamente bien tener otras formas de puntuación, especialmente si están más claramente conectadas a su programa. Además, se alienta a los lectores a editar respuestas anteriores para cumplir con esto.