Se trata de policías y ladrones si no está familiarizado con el formato, haga clic en la etiqueta para ir a la wiki. No habrá un hilo de ladrones para esta pregunta.
Policías
Su tarea como policías es seleccionar dos secuencias de la Enciclopedia en línea de secuencias enteras y escribir un programa que tome el enésimo elemento de una secuencia como entrada y salga el enésimo elemento de la segunda secuencia. Luego realiza una respuesta que incluye el código y omite las secuencias seleccionadas. Los ladrones intentarán encontrar las secuencias que seleccionó y si se las arregla para encontrar las secuencias que tenía en mente u otras secuencias para las cuales su programa debe marcar su respuesta como Agrietada . Si un ladrón le informa con un crack que cree que no es válido, puede presentar una prueba de que no es un crack. De lo contrario, debe marcarlo así.
Según las respuestas habituales que se han descifrado durante 7 días, se pueden marcar como seguras. Un policía puede marcar su respuesta como segura al revelar las secuencias que tenían en mente. Una vez segura, una respuesta ya no se puede descifrar.
El objetivo es minimizar el recuento de bytes de su programa mientras permanece sin descifrar.
Ejemplo
El siguiente código de Python traduce el enésimo elemento de A000290 (los números cuadrados) en A000217 (los números triangulares):
lambda x:sum(range(0,int(x**.5+1)))
Estipulaciones y requisitos
Si elige una secuencia que no se ha demostrado que sea finita, debe generar todos los términos que puedan existir, no solo los que figuran en la página OEIS
Como excepción a los lenguajes de regla anteriores sin enteros de precisión infinita, no es necesario que emitan o ingresen números fuera de su rango.
El tamaño de su secuencia de entrada no debe haber demostrado ser más pequeño que la secuencia de salida.
Su secuencia de entrada no debe tener elementos de repetición (de lo contrario, la tarea es prácticamente imposible)
El OEIS incluye un índice en su página (el primer número después del encabezado "OFFSET") de manera predeterminada, este es su desplazamiento para n (n es igual al índice para el primer elemento de la secuencia) si elige otro índice, debe indicarlo en tu respuesta.
Si elige un desplazamiento diferente del que aparece en el OEIS, aún debe asignar todos los elementos en su secuencia de entrada al elemento correspondiente en su secuencia de salida.
Si su programa recibe una entrada que no está en la secuencia de entrada, puede hacer lo que desee (comportamiento indefinido). Sin embargo, probablemente sea de su mayor interés que aún genere un número entero.
Es antideportivo hacer que su código sea difícil de ejecutar intencionalmente, ya sea haciendo que su ejecución sea lenta o una selección de idioma no libre . Si bien haré cumplir lo último, no puedo hacer cumplir objetivamente lo primero. Sin embargo, te ruego, por diversión, que no intentes lo primero, ya que hace que el desafío sea específicamente más difícil para aquellos con computadoras más débiles.
Ladrones
Su tarea como ladrones es seleccionar respuestas no resueltas, inseguras y encontrar las secuencias entre las que se asignan. Si encuentra una solución que funcione (no necesariamente la solución prevista por los policías) comente las secuencias en la respuesta adecuada.
Los ladrones no deberían preocuparse demasiado por verificar que dos secuencias particulares son una solución, uno debe publicar una solución si coincide con todas las entradas en OEIS. Si esa no es la secuencia que un policía tenía en mente, el policía puede ofrecer una prueba de que es incorrecta o marcarla como agrietada si no puede encontrarla.
fuente
Respuestas:
Jalea , 14 bytes (Craqueado por @Wolfram)
Pruébalo en línea!
Debería ser bastante obvio lo que esto hace. De hecho, para beneficio de los usuarios que no son Jelly, incluso daré una explicación:
Explicación
La pregunta es, ¿por qué hace esto?
Grieta
Las secuencias en cuestión fueron A201647 y A201647 . Son finitos y difieren solo en los últimos 2 elementos:
Por lo tanto, si la entrada es baja, la dejo igual, y simplemente ajusto una función a la transformación de las dos últimas.
fuente
Jelly , 7 bytes (Craqueado por @JonathanAllan)
Pruébalo en línea!
Que hace
fuente
p
,ÆF
rendimientos(p,1)
yÆd
rendimientos2
, asíḅ
nos lleva2p+1
que los mediosÆẸ
van a producir en el primer primer,2
, elevado a la potencia de ese resultado,2^(2p+1)
.Python 3, 256 bytes ( ¡Agrietado! )
Pruébalo en línea!
Lo siento si este código se ve horrible, creo que este es mi primer Python golf. El casting en Python hace que sea más fácil codificar.
fuente
q
?k
parece no usarse, por lo que puede guardar algunos bytes eliminándola.Procesando , 184 bytes, ¡SEGURO!
Una función que toma un int y devuelve un int. Mientras el número de entrada esté en
int
del rango, el programa debería funcionar bien.Esto no es lento, simplemente ilegible. ¡Buena suerte!
Me sorprende que esta presentación haya durado tanto tiempo. Oh, bueno, al menos es la primera presentación segura :)
A000578 a A000290
En otras palabras: los cubos a los cuadrados.
Explicación
Al responder Sin cadenas (o números) adjuntos , descubrí una lista de constantes de procesamiento que representan ints. Por ejemplo,
CORNER
tiene un valor de0
. La lista completa se puede encontrar aquí . Para encontrar el valor de una constante, simplemente puedeprint
hacerlo.Usando esto, decidí intercambiar ciertos números con combinaciones de estas constantes para ofuscarlo. Entonces, esto es lo que obtienes cuando sustituyes las constantes con sus respectivos valores int.
Incluso ahora, el código claro completo no se revela. Quedan los colores. En Processing, las variables de color tienen valores int, por ejemplo white (
#ffffff
) is-1
,#fffffe
is-2
,#fffffd
is-3
, etc. Esto se puede encontrarprint
ing ing color. Entonces simplifiquemos los colores.Estamos a la mitad del camino :) Para comprender los valores, necesitamos simplificar las expresiones numéricas.
Mucho más claro! Ahora simplifiquemos el logaritmo.
¡Casi terminado! Ahora tenemos que resolver este
(int)sqrt(red(color(-65536))/16))
bocado.color(-65536)
es rojo, entoncesrgb(255, 0, 0)
. Ahora lared()
función devuelve el valor del componente rojo en el argumento (que es un color). Entonces, ¿cuánto rojo hay en rojo? La respuesta es255
. Con eso obtenemosSustituir esto en el programa da como resultado:
¡Ya está hecho!
Para resumir, esto devuelve el cuadrado (hecho multiplicando dos veces en el ciclo for) de la raíz cúbica del número de entrada.
fuente
Mathematica (o lo que sea) - ¡Agrietado!
Sé que Mathematica es un software no libre, pero esta función es trivial para transferir a cualquier idioma favorito en el que desee ejecutarlo. Literalmente calcula el valor del polinomio de grado 9 evaluado en el entero de entrada, luego toma el cociente entero de ese valor y el número de 42 dígitos en la última línea. Por ejemplo,
f[100]
evalúa a-3024847237
.fuente