Su tarea como policías es seleccionar tres cosas:
Un lenguaje de programación
Una secuencia OEIS
Un conjunto de bytes
Luego, debe escribir en secreto un programa en ese lenguaje que calcule la secuencia del enésimo término utilizando solo los bytes del conjunto. Revelarás las tres piezas de información para que los ladrones puedan intentar descifrar el programa.
Las respuestas se puntuarán por el número de bytes en el conjunto de bytes, y la puntuación será buena. Las respuestas agrietadas tienen un puntaje automático de 0. Si su respuesta no está descifrada después de una semana, puede revelar el programa deseado y marcar su respuesta como "segura".
Las respuestas deben ser capaces de calcular cada término en los archivos b de la secuencia, pero no se requiere que calculen ningún término después.
Las secuencias pueden ser indexadas 1 o 0 para policías y ladrones.
Aquí hay un script de Python que comprueba si su código coincide con el conjunto de bytes dado.
fuente
A
por ab
y agregando a.txt
. Por ejemplo, oeis.org/b4.txt accedería a los archivos b para esa secuencia.Respuestas:
Haskell , A209229 , ( agrietado )
11 caracteres (incluida la nueva línea):
Salidas Verdadero / Falso como función de indicador para potencias de 2:
Las entradas son enteros positivos.
fuente
Python 2 , A000045 ( Agrietado )
contiene un espacio en blanco y una nueva
línea ¡Pruébelo en línea!
Solución prevista
fuente
+
en absolutoplus
funcionaría?sum
haríaHaskell, A000045 ( agrietado )
Decidí, creo que me gusta
t
más ques
.Entonces usemos estos 30 bytes (incluyendo nueva línea) en su lugar:
Tenga en cuenta que la descripción general del desafío exige que
En este caso, el archivo b sube al número 2000, que está mucho más allá de lo que se puede calcular usando
Int
.fuente
Octava, A000290 , ¡ Agrietada !
La secuencia son los números cuadrados: 0, 1, 4, 9, 16, 25, 36, 49 ... (para que no tenga que consultar el enlace).
fuente
Haskell, A000045 ( agrietado )
A todos les gustan los números de Fibonacci, a mí me gusta Haskell ...
He seleccionado cuidadosamente 30 bytes para usted: las letras minúsculas a excepción
f
,i
yt
, se obtiene las letras mayúsculasF
yT
y el símbolo de canalización|
lugar, y los tres símbolos=()
, y de nueva línea. Aquí están de nuevo:fuente
Haskell, A034262 , 43 bytes, agrietado
!"#%',.=?ABCDEFGHIJKLMNOPQRSTUVWXYZ[]_{|}~
Computa
a(n) = n³ + n
.fuente
Int
suficiente regresar ?Haskell, A009056 ( agrietado )
Otra simple, ahora de nuevo con suficientes letras para que parezca Haskell ordinario y tal vez para que me sorprendas al encontrar una solución completamente diferente a la mía.
La secuencia es Números> = 3 y el juego de caracteres consta de estos 30 bytes:
El crack tiene algunas buenas técnicas. Estaba pensando en esto:
fuente
C (C99), A000005 , 25 Bytes #, ¡Agrietado!
Estos son los bytes para un problema completo, toma n como argumento de línea de comando y genera la respuesta a stdout (el espacio se incluye en el bytecount).
fuente
Unario , A002275 , 1 Byte
Conjunto de bytes:
Al menos tuve que intentarlo: 3
(No creo que sea particularmente difícil de ver ya que todos los comandos en el idioma están disponibles)
fuente
Perl 5, A000030 ( agrietado )
Conjunto de bytes:
Pruébalo en línea!
fuente
JavaScript (ES6), 17 bytes, A000290 ( Agrietado )
Nuevamente, esta es la secuencia cuadrada simple a (n) = n 2 .
Conjunto de bytes:
fuente
Hexagonía , A057077 , 77 bytes
Secuencia periódica
1, 1, -1, -1
. Como una lista:Conjunto de caracteres (editado), que incluye una nueva línea y un espacio:
Pruébalo en línea!
fuente
Haskell, A000045 ( agrietado )
Está agrietado, y no comenzaré una nueva versión, pero si quieres jugar más: es posible sin él
y
, y es posible ser eficiente.Pido disculpas por guiarte en direcciones equivocadas dando un
g
. ¡Hagamos lo mismo sin!Aquí están los 29 bytes restantes (incluida la nueva línea):
Nuevamente, recuerde que
Int
no será suficiente para calcular el número 2000 de Fibonacci que se necesita porque está en el archivo b.fuente
Haskell, A000045 ( agrietado )
Esta es una especie de (como se anunció) no una nueva versión, sino completamente diferente. (¿Correcto?)
Todavía espero poder hacerte redescubrir mi pequeña observación agradable.
Esta vez se le pide que implemente la secuencia de Fibonacci usando un juego de caracteres de tamaño 17, que (que yo sepa) contiene solo
uno de losdos caracteres innecesarios:Tenga en cuenta que no hay una nueva línea (pero siéntase libre de mostrar una versión que las tenga para facilitar la lectura) y recuerde que debe poder calcular el número 2000 de Fibonacci.
fuente
Cubix, A000027 (SAFE) 17 puntos
Mi solución:
Míralo en línea aquí
Originalmente hice esto sin,
.NSQ
pero pensé que podría agregarlos de manera segura.Explicación:
Esta secuencia es solo "Los enteros positivos". Sin embargo, Cubix tiene tres comandos de entrada
i
, que se leen en un solo carácter (presionando-1
si la entrada está vacía),A
que se lee en el resto de la entrada como caracteres (empujando-1
a en la parte inferior de la pila), yI
, que lee el siguiente número fuera de la entrada (presionando0
si no hay una coincidencia). Entonces, naturalmente, solo proporcionéi
las lecturas en dígitos como su valor ascii. UH oh. Además,-1
es el marcador habitual para el final de la entrada, junto con?
lo que eliminé?
, lo que me obliga a usar!
(omitir la siguiente instrucción si TOS no es cero) para el flujo de control. Finalmente, pensé que necesitaba&
concatenar dígitos para imprimir conO
(que genera la parte superior de la pila como un número), ¡pero ahora me doy cuenta de que eso tampoco era necesario!Otra parte del desafío fue originalmente no tener
.
el carácter no operativo, pero puedes usar pares de!
en su lugar si tienes cuidado:i)
: lectura de entrada, incremento.!/
: si la parte superior de la pila es cero (final de la entrada), gire a la izquierdaizquierda::
;O.@
emerge la parte superior de la pila, salida como número, alto.de otra manera:
u'0
: empuje el código char de la0
parte superior de la pila)-r
: incrementar, restar y rotar;;
: aparece la parte superior de la pila dos vecesu&
: concatenar dígitos!!
: efecto neto cero, ahora estamos dei)
nuevo.fuente
.
pero se puede hacer sin él.Semilla , A005408 (números impares) - Seguro
Aquí hay uno un poco más desafiante. Puedes usar cualquier personaje válido en Seed:
No deberías ser capaz de hacer fuerza bruta en una semana a menos que tengas una computadora monstruosa. ¡Buena suerte! Es quebradizo.
Insinuación
Solución
fuente
Python 2 , A000045 ( Agrietado )
contiene un espacio en blanco y una nueva
línea ¡Pruébelo en línea!
Solución prevista
fuente
R, A000142 , ( agrietado )
Conjunto de bytes:
Solución prevista:
fuente
cQuents , A000027 , agrietado
¡Está bien! ¡Obtienes todo de ASCII! Espera ... no hay
$
... ¿qué hay de$
nuevo en cQuents? Oh, sí, el índice incorporado. Bueno, mala suerte: /Solución prevista:
Pruébalo en línea!
fuente
CJam, A000042 , agrietado por Lynn
Conjunto de bytes:
fuente
Ruby , A000004 , 5 bytes, agrietado
Solo jugando para comenzar. Debería ser fácil para cualquiera que esté familiarizado con Ruby. Es un puntaje bajo, pero lo que sea.
Exploit agrietado, no intencionado
Agrietado (respuesta prevista con
n
bandera)fuente
n
bandera (que es la razón por la que está en la secuencia de bytes, y sería$.
igual a 1)Python 3, A007504 ( Agrietado )
Este byte, incluida la nueva línea:
Mi código no proporciona una salida infinita, pero puede calcular toda la lista b.
fuente
.
:(R, A000290 , ( agrietado )
Conjunto de bytes:
fuente
c
, pero todo lo demás parafunction
? Eso es horrible Sé cómo hacer esto, excepto para leer en la entrada ...a
debería haber sido unc
. lo siento.Muñeco de nieve , 212 bytes, A000042
... más espacio, 0x00-0x1f inclusive y 0x7f-0xff inclusive .
fuente
cQuents , A000217 , agrietado
Byteset:
Tenga en cuenta que esto utiliza una función para la que aún no he enviado la documentación, por lo que lo presionaré esta noche, si espera hasta entonces. (O puedes pasar por mi código fuente ... diviértete).Documentación empujada. Sería un byte menos si una corrección de error reciente estuviera en TIO.Solución prevista:
¡Pruébelo en línea!
fuente
JavaScript (ES6),
1310 bytes, A000045 , AgrietadoEsto debería ser fácil.
Esta es la secuencia de Fibonacci: F (n) = F (n-1) + F (n-2) con F (0) = 0 y F (1) = 1.
Conjunto de bytes:
Editar:
Incluso se puede hacer con los siguientes 10 bytes:
fuente
R, A105311 , ( agrietado )
Conjunto de bytes:
fuente
Python3, A008615 , Agrietado
Bytemap (con nueva línea):
fuente
Befunge , A000142 , 29 Bytes, ( Agrietado )
Si no puede saberlo, ese conjunto de bytes incluye un espacio.
Esto debería ser moderadamente fácil de resolver.
Editar: Olvidé la "A" antes del OEIS
fuente
R, A105311 , ( agrietado )
Probemos esto sin el
l
oo
.Dado que esto se ha resuelto, la solución prevista:
fuente
%o%
antes de darme cuenta de que%x%
existía. Supongo que podría haber hecho'i'=='i'
para el1
pero de cualquier manera las obras, por lo que.