En un accidente muy inusual que involucra una pequeña muestra de radio, una ballena electrocutada y tres ositos de goma, se ha mutado parte del código fuente de The Management ™. Poco sabe el jefe de The Management ™, en realidad fueron los policías los responsables, en un intento por frustrar los planes "malvados" de The Management ™. Entonces, los Robbers® han sido contratados en un intento de recuperar el código original, porque ¿a quién no le gusta ser malvado a veces?
nota: Este desafío se inspiró en gran medida en Descifrar el código fuente .
Descripción
Este es un desafío de policías y ladrones .
- Los policías escribirán un programa (el código mutado) que realiza la Tarea # 1 (y también escriben un programa que realiza la Tarea # 2, pero se mantiene en secreto).
- Los ladrones intentarán revertir la "mutación" y cambiar este código original en un código que realice la Tarea # 2.
En este desafío, la Tarea n. ° 1 será la salida del n
número primo y la Tarea n. ° 2 será el n
número de Fibonacci (que de alguna manera es malo, de acuerdo con los Cops © de todos modos). La secuencia de Fibonacci se define como ( n=1
→ 1
; n=2
→ 1
; n=3
→ 2
; ...), y los números primos se definen como ( n=1
→ 2
; n=2
→ 3
; n=3
→ 5
; ...).
El objetivo de los policías es minimizar la diferencia entre los programas que completan la Tarea n. ° 1 y la Tarea n. ° 2, mientras se evita que los ladrones vuelvan a crear el código que completa la Tarea n. ° 2.
Reglas de policía
Los policías escribirán dos programas (uno que complete la Tarea # 1 y otro que complete la Tarea # 2), y harán pública la siguiente información:
- El primer programa (que genera el
n
número primo th) - La distancia de edición de Levenshtein entre el primer programa y el segundo programa
- El lenguaje de programación en el que ambos programas están escritos (debe ser el mismo lenguaje para ambos programas)
Las siguientes restricciones se aplican a ambos programas:
- Deben tener 128 caracteres de longitud o menos.
- Solo deben usar ASCII imprimible (más líneas nuevas, que también están permitidas).
- Deben tardar menos de 10 segundos en ejecutarse
n=45
y no están obligados a producir la salida correcta para ningunon>45
. - No deben usar ninguna función hash o criptográfica.
Reglas de ladrones
El ladrón intentará cambiar el programa del policía (que completa la Tarea # 1) en un programa que complete la Tarea # 2 (no necesariamente el programa original escrito por el policía) en la distancia de edición especificada por el policía.
Un envío ya agrietado no se puede volver a agrietar (solo el primer ladrón que descifra un envío obtiene crédito).
Después de descifrar un envío, haga lo siguiente:
- Publique una respuesta a la pregunta adjunta (enlace) de este desafío , proporcionando el idioma, su solución y un enlace a la respuesta original.
- Deje un comentario con el texto "Agrietado" que se vincula a su respuesta publicada.
- Edite la respuesta del policía si tiene privilegios de edición (si no los tiene, espere hasta que otra persona con los privilegios necesarios lo haga por usted o sugiera una edición).
Tanteo
Si el programa de un policía permanece sin descifrar durante 1 semana, el policía puede publicar el código original que completa la Tarea # 2 (en la distancia de edición especificada), y el envío se considera a partir de ese momento "seguro". La presentación segura que tenga la menor distancia de edición ganará. En caso de empate, gana el programa más corto (el original que completa la Tarea # 1). Si dos envíos aún están empatados, el que se publicó anteriormente gana.
Si un ladrón descifra con éxito el envío de un policía, la puntuación del ladrón aumenta en la distancia de edición de ese envío. Por ejemplo, un ladrón que descifra un envío con una distancia de edición de 3 y uno con una distancia de 5 gana 8 puntos. El ladrón con el puntaje más alto gana. En caso de empate, el ladrón que obtuvo el puntaje primero gana.