Este es un desafío de policías y ladrones. Este es el hilo del ladrón. El hilo del policía está aquí .
Los policías elegirán cualquier secuencia del OEIS y escribirán un programa p que imprima el primer entero de esa secuencia. También encontrarán algunas cadenas s . Si inserta s en algún lugar de p , este programa debe imprimir el segundo entero de la secuencia. Si inserta s + s en la misma ubicación en p , este programa debe imprimir el tercer entero de la secuencia. s + s + s en la misma ubicación imprimirá el cuarto, y así sucesivamente. Aquí hay un ejemplo:
Python 3, secuencia A000027
print(1)
La cadena oculta es de dos bytes .
La cadena es +1
, porque el programa print(1+1)
imprimirá el segundo entero en A000027, el programa print(1+1+1)
imprimirá el tercer entero, etc.
Los policías deben revelar la secuencia, el programa original p y la longitud de la cadena oculta s . Los ladrones descifran una presentación al encontrar cualquier cadena de esa longitud y la ubicación para insertarla para crear la secuencia. La cadena no necesita coincidir con la solución prevista para ser una grieta válida, ni tampoco la ubicación en la que se inserta.
Si descifras una de las respuestas de la policía, publica tu solución (con la cadena oculta y la ubicación revelada) y un enlace a la respuesta. Luego comente la respuesta de la policía con un enlace a su crack aquí.
Reglas
Su solución debe funcionar para cualquier número en la secuencia, o al menos hasta un límite razonable donde falle debido a restricciones de memoria, desbordamiento de enteros / pila, etc.
El ladrón ganador es el usuario que descifra la mayor cantidad de envíos, siendo el desempate el que alcanzó ese número de grietas primero.
El policía que gana es el policía con la cadena más corta s que no está agrietada. Tiebreaker es el más corto p . Si no hay envíos sin descifrar, el policía que tenía una solución descifrada para ganar más tiempo.
Para ser declarado seguro, su solución debe permanecer sin descifrar durante 1 semana y luego debe revelar la cadena oculta (y la ubicación para insertarla).
s no puede estar anidado, debe concatenarse de extremo a extremo. Por ejemplo, si s fuera
10
, cada iteración iría en10, 1010, 101010, 10101010...
lugar de10, 1100, 111000, 11110000...
Todas las soluciones criptográficas (por ejemplo, verificar el hash de la subcadena) están prohibidas.
Si s contiene caracteres no ASCII, también debe especificar la codificación que se está utilizando.
%
los asociados de izquierda.