Este es el hilo conductor de los ladrones de este desafío.
Los policías elegirán una secuencia OEIS y escribirán dos programas completos en dos idiomas diferentes que producen ese enésimo elemento en la secuencia cuando se les da un n a través de STDIN. Los dos programas deben ser anagramas entre sí, lo que significa que cada uno puede reorganizarse a partir de las letras del otro.
Presentarán el número OEIS, el código fuente y el nombre de un idioma en el que se encuentra.
Debes encontrar un anagrama de la presentación del policía original que se ejecute en un idioma que no sea el utilizado por el policía. Para descifrar una respuesta solo debes encontrar cualquier lenguaje y programa que produzca la secuencia y sea un anagrama del original, no necesariamente la respuesta en la que estaba pensando el policía.
Puede mostrar por código de caracteres o incluir STDERR en su solución, pero solo si el policía ha indicado que su solución oculta lo hace. La salida decimal a STDOUT siempre es un crack válido.
Por lo tanto, los policías están incentivados para que sea lo más difícil posible encontrar cualquier lenguaje que realice la tarea utilizando su lista de símbolos.
Tanteo
La persona con más grietas será la ganadora de esta sección. Solo la primera grieta para cada solución contará para la puntuación.
Junta de líderes
Muchas gracias a todos los que tuvieron lugar en este desafío.
Aquí está la tabla de líderes tal como está
Place User Score
-----------------------------
1 Adnan 3
1 Kritixi Lithos 3
1 Emigna 3
1 milk 3
5 Steven H. 2
5 Wheat Wizard 2
5 jimmy23013 2
8 ETH Productions 1
8 Dennis 1
8 alleks 1
8 Martin Ender 1
8 Oliver 1
8 Conor O'Brien 1
fuente
Respuestas:
05AB1E , 38 bytes, Loovjo , A000290
Pruébalo en línea!
Muy probablemente no sea la solución prevista, pero funciona.
Explicación
fuente
1.0 is not a number
? ¿Podrías por favor elaborar?is_number
comprueba que solo consta el número0-9
. Como.
no es un número, se vuelve falso. La función podría usar un nombre más descriptivo :)Jolf, 15 bytes, Adnan , A000290
Pruébalo aquí! Definitivamente no es la solución prevista, pero bueno, funciona.
Explicación
fuente
05AB1E , 49 bytes, Wheat Wizard , A000290
En realidad, el mismo enfoque que el crack de Emigna: p.
Explicación:
Pruébalo en línea!
fuente
05AB1E , 35 bytes, Oliver , A000290
Los policías deberían dejar de publicar
n^2
desafíos en Python ...Pruébalo en línea!
Explicación
fuente
2sable , 7 bytes, Kritixi Lithos , A005843
Código:
Explicación:
Pruébalo en línea!
fuente
Hexagonía , 13 bytes, Adnan , A002378
Pruébalo en línea!
Desplegado:
No es 100% si este es el original, porque la parte superior izquierda
\
no está en uso.El
<\>
son sólo espejos, por lo que el programa es en realidad todo lineal:fuente
V , 13 bytes, DJMcMayhem , A002275
Pruébalo en línea!
Esta podría ser la primera solución en el idioma que pretendía el autor.
Explicación
fuente
This might be the first solution in the language the author intended.
Spot on. :)2sable, Conor O'Brien , A000290
Pruébalo en línea!
No sé cómo funciona, en realidad solo hay un programa que cumple con los requisitos y simplemente me vi obligado a encontrar el idioma en el que funcionaba.
Después de revisar los documentos, puedo llegar a una explicación:
fuente
Pyth , 26 bytes, Steven H. , A023443
Código:
Pruebe en línea .
Bastante simple:
fuente
Python 3, 118 bytes, ETHproductions, A042545
Pruébalo en Ideone .
Presentación de la policía
Qué es diferente
El envío de policía no funciona en Python 3 por dos razones.
La función de entrada de Python 2 evalúa automáticamente una línea de entrada, mientras que la contraparte de Python 3 solo devuelve la línea como una cadena. Simplemente podemos llamar a int para arreglar esto.
print
era una declaración en Python 2, pero es una función en Python 3. En particular, eso significa que tenemos que rodear su argumento con paréntesis.Eso significa que necesitamos
int()
y()
, pero esos personajes no son parte del comentario. Eso significa que debemos hacer algunos cambios.En lugar de la fracción s , hacemos un seguimiento de 1 / s .
La inicialización de s -
s=1/(801**.5-28)
- se convierte ens=801**.5-28
guardar los caracteres1/()
.El factor de a [-1] en la actualización de a -
int(s)
- se convierteint(1/s)
, costando los caracteres1/
.La actualización de s -
s=1/(s-int(s))
- se haces=1/s-1//s
, costando los caracteres1//
, pero guardando los caracteres(int())
.Los caracteres guardados
()(int())
cubren los que necesitábamos para portar el código a Python 3, pero obtenerlos nos costó1//
. Podemos tomar//
del comentario, pero tendremos que guardar en1
otro lugar.Una forma (¿la única?) De guardar lo necesario
1
es reemplazar1
la inicialización de a con0==0
. Esto cuesta esos cuatro caracteres, pero podemos tomar00
del comentario.Hasta ahora, tenemos el siguiente código.
Para recuperar uno de los
=
que ahora "deber", podemos reescribir la inicialización de s y una con una sola misión:s,a=801**.5-28,[0,0==0]
Además, esto ahorra;
y cuesta,
, que se puede agregar a y se retira del comentario.El segundo
=
se puede guardar no almacenando la entrada en una variable, es decir, escribiendo en surange(int(input()))
lugar, guardando los caracteresi=
. Utilizamos i después del bucle así, pero el i º elemento de una es sólo el segundo desde la derecha, por lo que podemos reemplazari
con-2
. Por la misma razón,a[-2]
en el cuerpo del bucle se puede reemplazar coni
.Ahora tenemos una permutación en el código de trabajo de Python 3:
¡Sin embargo, este código también funciona en Python 2! Una forma de arreglar esto es reemplazar
print(a[-2])
con(print(a[-2]),)
; Tenemos los personajes que necesitamos en el comentario. Como se mencionó anteriormente, print es una función en Python 3, por lo que construye la tupla ( None ,) . Sin embargo, la declaración de impresión de Python 2 es un SyntaxError dentro de un literal de tupla.fuente
CJam, 39 bytes, leche , A000007
Pruébalo aquí
fuente
Pyth, 7 bytes, Luis Mendo , A000217
Según lo solicitado, el programa sale con error después de
p
aclarar la respuesta correcta.Pruébelo en línea aquí !
fuente
05AB1E , 12 bytes, tuskiomi , A000012
Pruébalo en línea!
Explicación
fuente
05AB1E , 38 bytes, Conor O'Brien , A000290
Pruébalo en línea!
Explicación
Esto se basa en la grieta de Emigna aquí .
fuente
05AB1E, 27 bytes, boboquack , A000012
Pruébalo en línea
Cómo funciona:
fuente
CJam, 70 bytes, Shebang , A000217
Pruébalo aquí
fuente
Convexo, 75 bytes, boboquack , A004526
Pruébalo en línea
Cómo funciona:
fuente
Dip , 9 bytes, Kritixi Lithos
Definitivamente no es la respuesta prevista.
Explicación:
fuente
Pip , 6 bytes, DLosc , A000012
Pensé que primero probaría el esolang del OP ;-)
Pruébalo en línea.
fuente
05AB1E , 25 bytes, Mego , A000583
Código:
Explicación:
Pruébalo en línea!
fuente
Dip , 8 bytes, Oliver , A000042
Explicación
Lo curioso es que este era el lenguaje previsto. Dip es un esolang creado por Oliver.
Casos de prueba y Dip en ejecución desde la línea de comandos
fuente
2sable, 14 bytes, Dopapp , A121377
Pruébalo en línea.
Cómo funciona (más o menos):
fuente
05AB1E , 4 bytes, Oliver , A000012
Pruébalo en línea!
Esta es una secuencia de
1
s.Esto genera
1
sin importar la entrada.fuente
Dip , 5 bytes, Oliver , A000012
La secuencia solo imprime
1
sin importar cuál sea la entrada. La respuesta de Oliver imprime a1.0
. Este programa también imprime a1.0
. Al parecer, esta es la solución prevista.Explicación
Solución alternativa (cortesía de @milk)
Convexo , 5 bytes
Pruébalo en línea!
Explicación
fuente
"1"
) por cada[input]
carácter (ya que la entrada es un número.