Nota : Este desafío ahora está cerrado a los nuevos envíos de policías. Esto es para garantizar que nadie pueda publicar envíos que solo permanecen sin descifrar porque ya no hay suficientes ladrones interesados en el desafío.
En este juego de policías y ladrones, cada policía escribirá un programa simple para dar un solo resultado. Luego harán públicos cuatro cosas sobre su programa:
- El idioma
- La duración del programa
- La salida deseada
- Una versión codificada del código fuente
Luego, los ladrones deben descifrar el código fuente para que su programa funcione como el original.
Reglas de policía
Debes escribir un programa simple, que los ladrones intentarán recrear.
Su programa original debe tener una funcionalidad simple: al ejecutarse, genera una sola cadena / número y se detiene. Debe dar el mismo resultado independientemente de cuándo / dónde se ejecute, y no debe depender de bibliotecas adicionales o de Internet.
Su programa y salida deben usar ASCII imprimible (se permiten nuevas líneas y espacios). La salida no debe tener más de 100 caracteres y el programa debe tardar menos de aproximadamente 5 segundos en ejecutarse en una máquina razonable. Tampoco se le permite usar hashing (u otras funciones criptográficas) en su programa
Luego, proporciona una versión codificada del código fuente y la salida requerida. Puede codificar su código fuente como quiera, siempre que se conserven los caracteres.
Su puntaje es el programa más corto que ha enviado y que no ha sido descifrado. Después de un período de una semana, una presentación no fisurada se volverá inmune. Para reclamar esta inmunidad, debe editar su respuesta para mostrar la respuesta correcta. (Aclaración: hasta que reveles la respuesta, no eres inmune y aún puedes ser descifrado). El puntaje más bajo gana.
Ejemplo simple de respuestas de policías
Perl, 20
ellir"lnto Wo d";prH
Hello World
O...
Perl, 15
*3i)xp3rn3*x3t(
272727
Reglas de ladrones
Los ladrones publicarán sus intentos de craqueo como respuestas en un hilo separado, ubicado aquí .
Tienes un intento de descifrar cada envío. Su intento de descifrado será una versión descifrada del código fuente. Si su conjetura coincide con la descripción (los mismos caracteres, salida y, por supuesto, idioma), y usted es la primera conjetura correcta, entonces gana un punto. Es importante tener en cuenta que su programa no tiene que coincidir exactamente con el original, simplemente use los mismos caracteres y tenga la misma funcionalidad. Esto significa que podría haber más de una respuesta correcta.
El ladrón con más puntos (grietas exitosas) gana.
Ejemplo simple de respuestas de ladrones
Tu programa fue
print "Hello World";
. (Aunqueprint"Hello World" ;
también podría haber funcionado).Tu programa fue
print(3**3x3)x3
Envíos seguros
- ASP / ASP.Net, 14 (Jamie Barker)
- Befunge-98, 15 (FireFly)
- GolfScript, 16 (Peter Taylor)
- CJam, 19 (DLosc)
- GolfScript, 20 (usuario23013)
- Perl, 21 (primo)
- Python, 23 (mbomb007)
- Ruby, 27 (histocrat)
- SAS, 28 (ConMan)
- Ruby, 29 (histocrat)
- Python, 30 (mbomb007)
- JavaScript, 31 (hsl)
- Ruby, 33 (histocrat)
- Marbelous, 37 (es1024)
- Ruby, 43 (histocrat)
- PHP, 44 (kenorb)
- Ruby, 45 (histocrat)
- Marbelous, 45 (es1024)
- Python 2, 45 (Emil)
- PHP, 46 (Ismael Miguel)
- Haskell, 48 (nooodl)
- Python, 51 (DLosc)
- Python, 60 (Sp3000)
- Pitón 2, 62 (pez lodoso)
- JavaScript, 68 (Jamie Barker)
- Mathematica, 73 (Arcinde)
- Haskell, 77 (orgulloso Haskeller)
- Python, 90 (DLosc)
- C ++, 104 (usuario23013)
- ECMAScript 6, 116 (Mateon1)
- C ++ 11, 121 (es1024)
- Grass, 134 (usuario23013)
- PowerShell, 182 (christopherw)
Envíos sin resolver
En orden de tiempo de publicación. Esta lista es cortesía de muchos usuarios.
- CoffeeScript, 96 (soktinpk)
- Python 3, 70 (Sp3000)
- TinyMUSH 3.1, 20 (Muqo)
- GolfScript, 32 (decadencia beta)
- Python 2, 101 (Mateon1)
- Lua, 49 (ChipperNickel)
- Python, 61 (imallett)
- Java 6+, 218 (nhahtdh)
- CJam, 51 (Martin Büttner)
- J, 22 (FireFly)
- Marbelous, 106 (es1024)
- Marbelous, 107 (es1024)
- JavaScript, 79 (FireFly)
- CJam, 47 (usuario23013)
- Rust, 118 + Clojure, 106 + others (Vi.) - versión 2
- Marbelous, 144 (es1024)
- Python 2, 80 (MrWonderful)
- Perl, 53 (DLosc)
- Perl, 26 (primo)
- Mathematica, 31 (Arcinde)
- Marbelous, 144 (es1024)
- Asamblea, 78 (krzygorz)
- J, 14 (algoritmo tiburón)
- Java 8, 157 (TheBestOne)
Una pequeña herramienta para verificar soluciones, cortesía de n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳
fuente
Respuestas:
Python 3, tamaño 74 ( agrietado )
Python simplemente no era lo mismo después de ser reeducado por Big Brother.
Entrada:
Hay dos líneas nuevas al final de las líneas 1 y 2.
Salida:
Tenga en cuenta que cada uno
True
está en su propia línea.fuente
2+2==5
una cuarta declaración hasta que descubrí que lo=
hacía demasiado fácil.Python 3, tamaño 12 ( agrietado )
Mi programa no produce resultados ni errores.
fuente
int
por un tiempo.python
y luego escribo mi solución en el indicador. Pero funciona, si pongo mi solución en un archivo y escribopython file
.CJam, tamaño 20 ( agrietado )
Código
Salida
fuente
Python 2, talla 50
Agrietado
Ya sabemos la respuesta a la pregunta, pero ¿cuál es la pregunta?
Código
Tenga en cuenta que no hay espacios finales ni líneas nuevas. El único carácter de espacio en blanco es el espacio único posterior
print
.Salida
Intenté equilibrar la longitud y la dificultad del código, pero no me sorprendería si me lo perdiera un poco de cualquier manera. Esperemos que sea suficiente para desalentar la fuerza bruta, al menos.
fuente
Pyth - 71 agrietado
Código
Salida
* Originalmente, George Lucas hizo que Han interrumpiera C3-PO. **
** Llamó a esto su mejor idea desde Jar-Jar.
Nota interesante: a pesar de todos los cambios que Pyth ha experimentado, ¡todavía hay una respuesta válida aquí!
Original
Explicación
Actualizado
Perdón por el formato de explicación deficiente, no sé cómo usar bloques de spoiler: S (aunque @ Sp3000 lo hizo un poco más agradable para usted)
¡Ahora puedes ejecutar Pyth en línea! Pruébalo aquí Gracias @isaacg :)
fuente
<br>
CJam, talla 51 [SEGURO]
Código
Salida
Puedes jugar con él en el intérprete en línea .
Esto debería ser más agrietado de lo que parece.
Insinuación
Solución
fuente
Befunge-98, talla 15 [SEGURO]
Código
Salida
Original
fuente
3312
,3300
y varios otros cerca3314
. Tan cerca ...GolfScript (16 bytes) [SEGURO]
Rendimiento esperado:
Fuente original:
fuente
:
.Ruby, 17 ( agrietado )
Ir por algo realmente corto esta vez.
Salida:
fuente
Python, 69 caracteres [ agrietado por grc ]
Revuelto:
Salida:
Esto es simplemente un poco inofensivo de diversión :) Probado en CPython 2.7.8, 3.3.2 y por el gusto de hacerlo PyPy3 2.3.1.
Explicación
fuente
Python, talla 56 ( agrietada )
Código
for i in "iprint()".join(([2,3,7,0,9,chr((-7+732^70)])))
Salida
hi mom
fuente
Python 3, 70 caracteres
Revuelto:
Salida (99 caracteres de largo):
Actualizar
Ha pasado una semana, así que en lugar de publicar la respuesta, aquí hay una pista:
fuente
Pyth , 11
Salida:
fuente
JavaScript, 94 Agrietado por FireFly
Salida
Original
fuente
alert
primero, ya que los índices coincidían muy bien con los caracteres necesarios. Interesante coincidencia.Syntax Error: Unexpected String
Ruby, 38 - descifrado por Martin Büttner
Salida:
Original:
fuente
print
ydowncase!
fueron arenques rojos. Esperaba usar la respuestaputs
, no pensé en eso$><<
.Python 3, tamaño 16 ( agrietado )
Código:
Salida (con nueva línea al final):
fuente
hello
eran un anagrama deimport
. ^^Perl - 47 ( agrietado por grc )
Código (también hay un espacio allí)
Salida:
Puede ejecutarlo en línea aquí y funciona bajo
strict
ywarnings
.fuente
strict
ywarnings
hágamelo saber.Ruby, 33 - descifrado por user23013
Salida:
Original:
fuente
puts
obviamente será lo primero,.next
hay otra palabra clave que se puede usar, y el resto es una especie de hechicería con$
variables rubí y creación de matriz de caracteres ... +1Python2, 132 caracteres
Salida (con una nueva línea):
Versión actualizada, 96 caracteres.
La respuesta a la versión original sugirió el en
exec
lugar decompile
+eval
, así que aquí hay una versión simplificada:Actualización: agrietada
Completamente agrietado por Alex Van Liew y KennyTM . Las soluciones originales fueron (desplácese hacia la derecha para revelar el spoiler):
fuente
\n
cadenas literales internas). Con las nuevas líneas, el código podría ser más corto.x
s yc
s para mí hacer lo que quiero hacer: PDon't count ones which exist. Count ones which do not exist
.Ruby, 29 [seguro]
Tratando de ver cuán corto puedo llegar a Ruby sin que me quiebren.
Código
Salida
Original
Explicación
fuente
PHP, tamaño 49 [ Agrietado por Martin Büttner ]
Código
Salida
fuente
MATLAB, 41 bytes
Agrietado por feersum
Salida
fuente
Perl, 36 ← agrietado por grc
Código
Salida
Probado aquí
fuente
Haskell, 100 caracteres (no válido, salida demasiado larga)
Código
Salida:
"\er\\e\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\
Original
fuente
fix show
. Definitivamente indescifrableJ, 22 bytes
Código
Salida (97 caracteres)
Espero que esto sea prácticamente imposible ...
fuente
CJam, 32 bytes ( agrietado )
Fuente revuelta
Salida
fuente
Pyth - 35 - Agrietado
En el espíritu de @ MartinBüttner:
Código
Salida
Intenta decodificarlo en línea aquí.
fuente
TinyMUSH 3.1 , 20
Revuelto:
Salida:
fuente
Python 3, longitud 110 [ agrietada por grc ]
Revuelto (
\n
denota una nueva línea)Salida:
Aquí hay otra divertida: no pretende ser difícil, sino algo inusual y desconcertante. :)
Explicación
fuente
Javascript, 29 - Agrietado
Ejecutar en una consola del navegador Chrome
Código
Salida
Código original
fuente