Este es un desafío de policías y ladrones , el hilo de ladrones se puede encontrar aquí .
Su tarea es escribir algún código que genere una secuencia OEIS y contenga el nombre de la secuencia en el código ( A______
) y genere una segunda secuencia separada cuando el nombre de la secuencia en el código se cambie por el nombre de la segunda secuencia.
Aquí hay un ejemplo en Haskell que funciona para A000217 y A000290 .
f x|last"A000217"=='0'=x^2|1>0=sum[1..x]
Luego debes revelar una de las dos secuencias, y el código mantiene la segunda secuencia en secreto. Los ladrones intentarán descubrir cuál es la secuencia oculta. Si un ladrón logra determinar cuál es su secuencia (u otra secuencia que se ajuste a los criterios), su respuesta está descifrada. Si ninguno lo hace en una semana de publicación de su respuesta, puede marcar su respuesta como Segura y revelar la solución prevista para la verificación. Las respuestas seguras no se pueden descifrar.
De entrada y salida
Tomado de aquí
El código puede ser una función o programa completo que lleva n a través de un método de entrada estándar y da salida a la n º término de la secuencia como indexado por el índice proporcionada en la página OEIS.
Debe admitir todos los valores proporcionados en los archivos b de OEIS para esa secuencia; no es necesario admitir cualquier número que no esté en los archivos b.
Puntuación
Su puntaje será el número de bytes en su código, con menos bytes mejor.
fuente
Respuestas:
Python 3, 59 bytes, A162626 , descifrado por Wheat Wizard
Esto
sesuponía que era imposible, ¿verdad?fuente
Python 3 , 62 bytes, A017016 ( Agrietado )
Pruébalo en línea!
fuente
Japt , 13 bytes ( agrietado )
Hay (al menos) otra solución, si alguien más quiere apuñalarlo.
Pruébelo en línea
A000012
Explicación
fuente
(sum_of_numbers_in_oeis(excluding 'A') + 1)%4
. : DMATL ,
3029 bytes ( Agrietado )A077430
Pruébalo en línea!
-1 byte gracias a @Sanchises
fuente
I
1 byte.I
se inicializa a 3l
(uno) yO
(cero), casi nunca debería tener que usar un espacio en sus programas MATL. En una nota relacionada, consulte también la Tabla 7, que contiene muchas constantes predefinidas útiles (aunque tenga en cuenta que, por ejemplo,4X2Z%
tiene una abreviatura1Z%
)C #, 28 bytes ( agrietado )
Funciona con A000290 .
Una fácil para comenzar esto.
Pruébalo en línea!
fuente
Python 2, 43 bytes, A000079 ( Agrietado )
Pruébalo en línea
fuente
C #, 75 bytes, ( Agrietado )
A000244
Pruébalo en línea!
fuente
% 2
, por lo que el programa literalmente solo puede hacer dos cosas , dependiendo del resultado de eso: uno para0
y otro para1
. Así que puse un número impar en su lugar, y el desafío se resolvió un poco.Python 2 , 53 bytes, A000012 [agrietado]
Pruébalo en línea!
fuente
Python 3, 65 bytes, A000027, agrietado
Yay aritmética loca!
fuente
n=12
que parece correcto, pero el resultado estará desviado por un índice : ¿me rompí con el insecto o caí en un arenque rojo muy inteligente?a(n) = floor(n/2)
; la secuencia listada comienza con 0. Sin embargo, esa es la solución deseada.Smalltalk, 148 bytes, ¡seguro!
A018253
Toma un entero como entrada, la secuencia se basa en 1.
fuente
Haskell, 226 bytes, ¡seguro!
No estoy seguro de si es inteligente o feo, tal vez ambos ...
Así que ahora esto calcula A001906 , pero debería ser capaz de generar muchas secuencias.
Pruébalo en línea!
Solución: A131078
¿Se pregunta si esto fue demasiado difícil o si nadie lo intentó?
o 1
queo 6
son los dígitos del número de serie,m
se muestra una lista de las operaciones.l
es una lista infinita definida recursivamente con los dos primeros valores derivados del número de serie y los restantes calculados a partir de los dos anteriores utilizando una operación fija dem
. En el caso de A001906, la definición se puede simplificar a(flip(+))
es (generalmente) lo mismo(+)
y obtenemos una definición bien conocida (pero no la más corta) de los números de Fibonacci. Este esquema de recursión podría calcular directamente A001906, pero eso necesita una operación más complicada que las dem
. Otro ejemplo: el uso de valores de partida1
y2
y la operación(*)
da la serie A000301 . Nuestro código lo calcula cuando el número de serie se reemplaza por?103206
.Finalmente, la función se
f
indexa en la listal
, pero solo después de alguna transformación de la entrada. Para A001906, la parte media se reduce a(*)2
, de modo que solo obtenemos los números de Fibonacci en posiciones pares. La parte correcta se convierteflip const 1
, que es la función de identidad y no interfiere más.Para la solución
A131078
, los valores iniciales del
son1
y0
, y la operación esflip const
, lo que permitel
ser1,0,1,0,...
. La parte media de sef
convierte(flip div 4)
, lo que resulta en1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,...
. Esto parecía una buena respuesta, pero luego vi que A131078 comienza enn=1
, así que agregué la parte correctaf
, que aquí esflip(-)1
restar una.Mi idea era hacerlo un poco ofuscado al usarlo
m
e indexarlo con dígitos de los números de serie, luego se volvió más ofuscado (términos complicados) para que funcionara (tal vez no estaba buscando las alternativas lo suficiente); y luego se volvió aún más ofuscado (parte correctaf
) para que realmente funcione. Aún así, creo que algunas suposiciones e intentos podrían haberlo resuelto.fuente
0
. Eso está bien porque solo comienza en1
! Comenzar en1
también debería eliminar algunos de los errores de "división por cero". Me sorprenden los ejemplos que se ejecutan para siempre. Tal vez la transformación del índice crea valores muy grandes en estos casos ...cc , 52 bytes, agrietado
Este funciona con A000217 :
Pruébalo en línea!
fuente
Python 3.6, 114 bytes, agrietado
A005843
g(n)
devuelve el enésimo valor de la secuencia para n> = 0.random.choices(s,k)
es nuevo en Python 3.6, devuelvek
elementos seleccionadoss
con reemplazo.fuente
Chip , 67 bytes, agrietado por Yimin Rong
A000012 . Un poco descarado, sí.
Pruébalo en línea!
Utiliza bytes para E / S, así que fui agradable y construí un contenedor bashy / pythony.
.
fuente