Escriba un programa utilizando solo caracteres ASCII imprimibles que no tengan entrada. Como referencia, aquí están los 95 caracteres ASCII imprimibles en orden:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Cuando se ejecuta el programa, debe imprimirse 0
(más una nueva línea final opcional) en stdout y luego finalizar normalmente.
Cuando cada carácter en su programa es reemplazado por el carácter N espacios a su derecha en ASCII imprimible, dando vueltas desde el ~
espacio, la cadena ASCII imprimible resultante idealmente será un programa ejecutable en el mismo lenguaje que no requiere entrada y salida N (más una nueva línea final opcional) a stdout, luego termina normalmente, para N = 1 a 94.
Por ejemplo, si su programa original fue
@Cat~(88 !)
ejecutarlo debería generar 0
y desplazar todos los caracteres hacia arriba en la escala ASCII imprimible en uno
ADbu )99!"*
debería dar como resultado otro programa que salga 1
. Hacerlo de nuevo idealmente dará como resultado otro programa que genere2
BEcv!*::"#+
y así sucesivamente con 3 y 4, etc. hasta el punto de cambiar 94 veces
?B`s}'77~ (
que idealmente es un programa que da salida 94
.
El alivio es que este es solo el comportamiento ideal. No es necesario que su programa y sus 94 derivados funcionen, pero cuanto más lo hagan consecutivamente desde el principio, mejor. (Los programas que no funcionan pueden tener algún tipo de comportamiento).
Puntuación
Su puntaje es el número de programas consecutivos a partir del original (el que genera 0
) que funcionan, es decir, emiten correctamente su N. correspondiente. La respuesta con el puntaje más alto (un máximo de 95) gana. Si hay un empate, gana el programa con la longitud más corta en bytes.
Por ejemplo, si @Cat~(88 !)
la salida 0
y la ADbu )99!"*
salida 1
, pero BEcv!*::"#+
con error, entonces su puntuación sería de 2. 2 Es incluso si ?B`s}'77~ (
las salidas con precisión 94
e incluso si todos los programas para n = 30 a 40 trabajaron. Solo se cuenta el número consecutivo de programas de trabajo, comenzando en cero.
Notas
- Para combatir la posible disputa y las lagunas, las respuestas en competencia deben generar sus números en decimal sin ceros a la izquierda o signos o puntos decimales (es decir, simple
0
1
2
...94
). - Los idiomas que usan diferentes bases o formatos de números están permitidos pero no son elegibles para ganar.
- La presencia de una nueva línea final opcional no necesita ser coherente en todos los programas.
- Las funciones y los comandos REPL no están permitidos, solo los programas completos.
fuente
ans = 0
?0
impresa en stdout. Sin embargo, puede hacer una respuesta no competitiva.Respuestas:
Ook! , 95 programas,
1999214066 bytesLa manera fácil de hacer este desafío es con un lenguaje tokenizado que no necesita nuevas líneas e ignora los tokens no válidos.
Probado con este intérprete *. Asume celdas de 8 bits para golfiness extra. Los programas también se superponen ligeramente para guardar algunos bytes.
* Este intérprete tiene una peculiaridad extraña por la cual el último token necesita un carácter después de ser registrado, lo que afecta
n = 62
. Hay intérpretes de 8 bits sin conexión sin este capricho, pero este fue el mejor en línea que pude encontrar.fuente
PHP, 95 programas,
24392063 bytesRequiere que la opción output_buffering esté activada o algunos valores como 4096. El valor predeterminado es 4096 para el servicio web (pero no CLI) al menos para mi instalación.
El documento dice
ob_clean
que no devuelve nada. Pero volvió a ser cierto, sin embargo.Los programas cambiados se ven así:
Generado usando este programa CJam:
fuente
CJam , 10 programas, 1 byte
Pensé que sería mejor agregar esto de inmediato antes de que alguien más se pusiera descarado y lo hiciera: P
Un programa CJam con solo un número simple genera ese número, por lo que esta es una manera fácil de obtener 10 programas que funcionan, a saber:
0
,1
,2
,3
,4
,5
,6
,7
,8
, Y9
.El siguiente programa, como
:
era de esperar, no sale10
pero da un error de "operador inacabado".Esto, sin duda, funciona en muchos idiomas.
fuente