Este es un desafío de policías y ladrones . Para el hilo de los ladrones, ve aquí .
Este desafío involucra dos secuencias OEIS elegidas por los policías - S 1 , S 2 - y qué tan bien esas secuencias pueden ser golfizadas y ofuscadas.
El desafío de los policías
Su desafío como policía es elegir un idioma disponible libremente y dos secuencias OEIS. Luego, escriba el código A en ese lenguaje que toma la entrada n y produce S 1 (n). Cuando ese código se modifica por una distancia de Levenshtein de X caracteres (con X no más que 0.5 * (length A)
), y se convierte en código B en el mismo lenguaje, entonces debe producir S 2 (n). En realidad, debe escribir este código B , pero no lo revele hasta que su desafío sea seguro (ver más abajo).
Las presentaciones de los policías deben incluir el nombre del idioma, el código completo A , el recuento de bytes de A , el valor X de cuántos cambios para llegar a su código secreto B y los números de secuencia S 1 y S 2 elegidos . Puede elegir si cada secuencia está indexada a 0 o indexada a 1, pero especifíquelo en su envío.
Para descifrar una presentación en particular, los ladrones deben idear un programa C en el mismo lenguaje (y versión) que produce S 2 (n) y si el carácter Y cambia de A (con Y <= X
). Los ladrones no necesariamente necesitan encontrar exactamente el mismo código B que produjo el policía (en secreto).
Ganar y anotar
Si su respuesta de policía no se ha descifrado en 7 días (168 horas), puede revelar su propia solución B , momento en el cual su respuesta se considera segura. Siempre y cuando no reveles tu solución, los ladrones todavía pueden descifrarla, incluso si ya han pasado los 7 días. Si su respuesta se agrieta, indíquelo en el encabezado de su respuesta, junto con un enlace a la respuesta del ladrón correspondiente.
Los policías ganan al tener la presentación sin descifrar con la A más corta . Si está atado, entonces la X más pequeña se usará como desempate. Si aún está empatado, la presentación anterior ganará.
Reglas adicionales
- No debe utilizar ninguna función integrada para generar hash, cifrado o generación de números aleatorios (incluso si coloca el generador de números aleatorios en un valor fijo).
- Se permiten programas o funciones, pero el código no debe ser un fragmento y no debe asumir un entorno REPL.
- Puede tomar entrada y dar salida en cualquier formato conveniente . Los métodos de entrada / salida deben ser los mismos para ambas secuencias.
- La calculadora definitiva para la distancia de Levenshtein para este desafío es esta en Planet Calc.
- Además de ser un desafío CnR, este es el código de golf, por lo que se aplican todas las reglas habituales de golf.
(0.5*len(A))