Este es un desafío de policías y ladrones. El hilo de ladrones se puede encontrar aquí.
Su desafío es escribir un programa que genere un anagrama de su código fuente pero no el código fuente original en sí.
Por ejemplo, el siguiente programa de Python,
print`'print*2``'*2`
huellas dactilares
'print*2``print*2``'
que tiene todos los mismos caracteres que su fuente original pero en un orden diferente.
Una vez que haya encontrado dicho programa, incluya la salida del programa como respuesta omitiendo el programa que lo genera. Como habrás adivinado, los ladrones buscarán descubrir el programa que has ocultado o cualquier programa que se ajuste a las especificaciones. Su objetivo es hacer el programa más corto que los ladrones no puedan descifrar.
Reglas
Al igual que con la mayoría de los desafíos de policías y ladrones , si su respuesta permanece sin descifrar durante una semana, puede agregar la solución deseada a su respuesta y marcarla como Segura . Una vez segura, los ladrones no pueden descifrar una respuesta.
No necesita incluir el idioma de la solución deseada, sin embargo, si no incluye el lenguaje, los ladrones pueden descifrarlo en cualquier idioma anterior al desafío, mientras que si especifica el idioma, solo pueden descifrarlo en el que se proporciona.
Se aplican las reglas estándar para Quines.
fuente
Respuestas:
Brain-Flak , 231 bytes agrietado por Wheat Wizard
El programa original usa el
-A
argumento.Aquí están los recuentos:
fuente
Python 2, 96 bytes, descifrado por math_junkie
Salida:
Código de golf por primera vez! Espero que no sea demasiado fácil.
fuente
print('')
,chr() + ''
hasta ahoraHaskell, 107 bytes, descifrado por nimi
Hay una nueva línea final adicional.
Solución original:
Pruébalo en línea!
Mi idea principal era escribir un quine que clasificara su propio código fuente antes de enviarlo sin usar una
sort
función de biblioteca . Solo después de un intento inicial de craqueo por parte de nimi , se me ocurrió que el código del programa podía clasificarse manualmente, codificarse en el programa y luego imprimirse mientras duplicaba cada letra. Sin embargo, los caracteres disponibles limitados hacen que este enfoque sea más engorroso y el crack exitoso de nimi es bastante similar a mi programa original.Explicación:
fuente
;
con un NL):i[]d=[d,d];main=print$i[]=<<"$$ ... |||"--
y todos los caracteres que faltan después de--
. Encontré esta versión después de mi respuesta del hilo de ladrones y después de que reveló su respuesta con la explicación ahora modificada.Idioma no especificado, 124 bytes,
En el tema de la respuesta de DJMcMayhem, estos son los primeros 32 caracteres ASCII (aparte de
0x00
) impresos cuatro veces cada uno. Como ninguno de estos son visibles, no he incluido el código real en mi respuesta.Aquí está el hexdump:
Sin embargo, aquí hay algo de Python que lo imprime (y una nueva línea) si desea:
fuente
Pyth , 32 bytes, descifrado por math_junkie
Solución original
Pruébalo en línea!
fuente
CJam, 46 bytes, descifrado por math_junkie
fuente
V , 21 bytes (¡Seguro!)
Tenga en cuenta la nueva línea principal.
Como esto contiene elementos no imprimibles, aquí hay un hexdump:
Para ayudar a algunas personas, aquí hay un enlace a la línea V extensible estándar
Aquí está la versión original:
Pruébalo en línea!
La versión legible es:
La forma en que esto funciona es incrustando la ordenación en la línea extensible predeterminada. Mientras pensaba en V-quines debido a esta respuesta, me di cuenta de que la quine extensible estándar puede acortarse en tres bytes, por lo que esta solución podría haber sido:
Explicación:
fuente
Idioma no especificado, 254 bytes Craqueado por @Dennis!
Dudo que esto gane por brevedad, pero será difícil de descifrar, por lo que aún vale la pena hacerlo.
Debido a un error, el orden
0x0b, 0x0c, 0x0a
se mezcló un poco, pero este es definitivamente el resultado real.Pensé que no especificaría el idioma solo para poder ver en qué idiomas diferentes es posible. Dado que la salida es en su mayoría no ASCII, aquí hay un hexadecimal de la salida:
Esos son todos los caracteres ASCII excepto por
0x00
y0x0D
porque ambos causaron un comportamiento extraño en TIO. Diviértete cracking! >: DEl código original estaba en V.
Pruébalo en línea
Hexdump:
Básicamente, todo hasta el
S
justo inserta basura en el búfer. El0xEE
principio es solo para asegurar que todo después de la nueva línea no suceda en parte de un bucle o macro. Entonces, hacemosfuente
Octava , 91 bytes
fuente
PHP, 130 bytes (seguro)
Solución original
No pude entender que no estaba roto
fuente
Guess, 43 bytes
Fue una decisión difícil compartir o no el idioma que era, pero creo que esta opción es mejor. Tenga en cuenta que hay una nueva línea final.
fuente