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.
fuente
4
un fragmento válido que devuelve 4, en versiones anteriores de Perl que no tienen REPL?)07
lo mismo que7
?-
nin
...Respuestas:
CJam , 25 fragmentos, 12 comodines, 64 bytes
Pruébalo en línea!
Comodines:
Siento que tengo que publicar rápidamente, antes de que Dennis me supere.
fuente
CJam , 23 fragmentos, 11 comodines, 45 bytes
Pruébalo en línea! El | contador de comodines (ignore las nuevas líneas)
fuente
JavaScript, 10 números, 5 comodines
Caracteres restantes:
!!#$$%&())))*...:=@@@HILOQQQTTZ\^```eefmpy{|||~~~~~~~~~
5/5 caracteres de bonificación utilizados:
37680
Programas:
1
3
4
4|!``
6
7
8
9
0xA
Tenía la esperanza de que una de las cuerdas que pudiera hacer
\xAB
sería un número, pero desafortunadamente ninguna de las combinaciones que probé produciría ninguna. los^
personaje (XOR) también sería interesante de usar, pero actualmente no veo ninguna oportunidad en la que pueda usarse para hacer un número lo suficientemente grande.Si ve otra combinación factible, hágamelo saber en los comentarios.
Editar: Agregado # 10 gracias a Arnauld
fuente
10. 0xA
(al0
ser un nuevo comodín otorgado por llegar a 10)(Q=!``)|Q
por 1 para obtener un extra en1
alguna parte. Sin embargoPyth, 12 fragmentos, 20 bytes (6 comodines)
Encuentre el primer número donde la raíz (n, n) es verdadera, comenzando desde 1. Salida: 1
No doble
{}
. Salida: 2Comodín n. ° 1. Salida: 3
Salida: 4.
Comodín n. ° 2. Salida: 5
Comodín n. ° 3. Salida: 6
Comodín n. ° 4. Salida: 7
Comodín n. ° 5. Salida: 8
Salida: 9
Variable preinicializada. Salida: 10
Diez más no cero. Salida: 11
Comodín n. ° 6 (
2
). Salida: 12fuente
Octava, 6 números, 3 comodines
Todavía tengo
1
,9
y*
me fui, pero no sé si me ayudará mucho. Veré qué puedo hacer con esos :)No es fácil obtener muchos números cuando no se usa Esolang. Espero poder obtener uno o dos más, pero creo que será difícil.
fuente
Pushy , 10 números (4 comodines)
Todos estos son fragmentos que dejan el resultado en la pila. Puede probar esto en el intérprete en línea agregando
#
cada fragmento (para imprimir el número)Esta respuesta aún no está completa, aunque parece poco probable que llegue mucho más lejos.
fuente
05AB1E, 12 números, 6 comodines
fuente
Hexagonía , 6 números, 3 comodines, 23 bytes
Pruébalo en línea!
El sexto programa completo está hecho de comodines.
El único realmente interesante es
3
. Si bien podría hacer eso como4(!@
, eso me dejaría sin una4
para generar5
fácilmente, así que en lugar de eso decidí:Debido a que
|
,)
en la primera línea se ejecuta dos veces, antes de que la IP se ajuste a la esquina derecha.$
salta sobre@
, y luego\
redirige la IP por)
tercera vez. La IP se ajusta a la esquina inferior izquierda,!
imprime3
y@
finaliza el programa.No creo que sean posibles más de 6 fragmentos, porque solo hay 5 comandos de impresión (
!!!!!
) y 5 comandos que pueden usarse para terminar el programa (@@@%:
). Entonces, después del quinto fragmento, necesitamos al menos dos comodines por fragmento. Por lo tanto, incluso si lograra obtener6
sin usar un comodín para ello, no quedarían suficientes comodines para el fragmento siete.fuente
JavaScript, 8 números, 4 comodines
Podría intentarlo más tarde: estoy desperdiciando personajes en 2 y 6, cuando lo haces.
fuente
Befunge-98, 4 fragmentos, 18 bytes, 2 comodines
Caracteres restantes:
!!!$$%&())))*=ILOQQQTTZ\^`````````eefmpxy{||||~~~~~~~~~
Dudo que sean posibles más, ya que cada programa adicional requerirá una forma de salida, y todos
.,
ya están agotados. Si puedo encontrar una manera de hacer 3 y 5 sin un comodín, entonces es posible.El último programa finalmente terminará debido a que la pila se está llenando.
A
yH
sin huellas dactilares cargadas se reflejará, y el programa seguirá presionando 9's.fuente
%
embargo, simplemente puede terminar con .00%
es válido en Befunge-98 y da como resultado 0 (o solicita al usuario el resultado en Befunge-93.{
puede revertirse si se queda sin memoria; no se dice nada sobre el empuje normal, y todos los intérpretes parecen fallar en OOM, pero claramente los límites de memoria se consideran en la especificación del lenguaje.p
personaje, pero tomaría algo de trabajo. Podríae%9
obtener 5, pero necesitaría una forma de imprimirlo y finalizar el programa, así que lo dudoSmileBASIC, 12 fragmentos, 5 comodines, 31 bytes
También podría haber usado una variable en lugar de
.
(las variables comienzan en 0) y una variable de cadena (comoQ$
) en lugar de@Q
Caracteres utilizados:
!!!#&*+...1449@AHILQQTem||
Comodines utilizados:
67813
caracteres no utilizados:
!!$$%()))):=@@OQTZ\\^`````````efpxy{||~~~~~~~~~
fuente