Usando los 74 caracteres de la cadena de cápsulas del tiempo 2016
H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``#|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{%
escribir fragmentos de código N en el mismo idioma donde:
- Las salidas del primer fragmento
1
. - Las salidas del segundo fragmento
2
. - Las salidas del 3er fragmento
3
. - ... etc. ...
- Las salidas del fragmento N-ésimo
N
(el número, no la letra literal).
Un "fragmento de código" se define como cualquiera de estos:
- Un programa completo sin entrada requerida que genera el número normalmente .
- Una función sin argumentos necesarios que genera / devuelve el número normalmente .
- Una expresión REPL que evalúa el número.
(Puede mezclar y combinar estas tres variantes en sus N fragmentos).
Los caracteres que puede usar en el conjunto combinado de N fragmentos son precisamente los 74 caracteres de la cápsula del tiempo, más floor(N/2)
los bytes "comodín" adicionales que puede usar en cualquier lugar.
Por ejemplo, la cápsula del tiempo contiene tres @
, por lo que en la totalidad de sus N fragmentos solo puede haber hasta tres @
presentes a menos que decida utilizar algunos de sus floor(N/2)
bytes comodín para obtener @
más.
Por lo tanto, sin contar los comodines, el conjunto combinado de caracteres en sus N fragmentos debe ser un subconjunto de los 74 caracteres de la cápsula del tiempo. Sus longitudes combinadas no pueden exceder 74. No puede reutilizar caracteres de cápsula de tiempo o bytes comodín entre fragmentos.
Notas
No hay otros límites en la longitud del fragmento o cuántos comodines se pueden usar por fragmento.
Debe escribir todos los fragmentos del 1 al N. No es 0 para N-1, ni k para N + k-1.
Los fragmentos deben ser individuales, no un fragmento que muestre la lista
1, 2, 3, ..., N
.Las salidas pueden ser flotantes como
3.0
en lugar de3
y puede usar una base que no sea decimal si es la base natural de su idioma . Debe usar la misma base para todos los fragmentos.Los comodines se cuentan como bytes en la codificación de su idioma . Probablemente sea ASCII pero, por ejemplo, si
∞
cuenta como un byte en su codificación, puede usarlo como un solo byte comodín.Puede usar bytes comodín para caracteres multibyte. por ejemplo,
∞
es normalmente tres bytes por lo que podría utilizarlo en un fragmento pero va a costar tres de susfloor(N/2)
bytes comodín.Nuevas líneas como
\r\n
pueden considerarse un byte.
Ejemplo
En Python, N = 4 es posible simplemente usando REPL. Hay floor(4/2) = 2
comodines.
1
de la cápsula del tiempo es una expresión que evalúa1
.2
consiste en un solo comodín, a saber, el2
. Evalúa a2
.3
También consta de un solo comodín. Evalúa a3
. No más comodines.4
está afortunadamente en la cápsula del tiempo y se evalúa4
.
Estos fragmentos son cortos y triviales. Una respuesta real probablemente sería mucho más compleja.
(Cinco y más en Python pueden ser posibles, pero lo dejaré a los profesionales).
Tanteo
La respuesta con la N más alta gana; es decir, el que sube la escalera entera más alto.
En caso de empate, la respuesta que usó la menor cantidad de bytes comodín gana.
En caso de que todavía haya un empate, la respuesta que usó la menor cantidad de caracteres acumulativos gana.
Si todavía hay un empate, la respuesta anterior gana.
07
lo mismo que 7
?
-
ni n
...
4
un fragmento válido que devuelve 4, en versiones anteriores de Perl que no tienen REPL?)