Dada la salida del programa del policía ( o
), el n
número de bytes ( ) y el número de bytes únicos ( c
) utilizados, se obtiene un código correspondiente que tiene una n
longitud de bytes con c
bytes únicos que coinciden con la salida del policía o
.
Este es el hilo policial . Publique soluciones que se quieran descifrar aquí.
El hilo de ladrones se encuentra aquí .
Los policías deberían publicar soluciones como esta:
#[Language], `n` Bytes, `c` Unique Bytes (c*n points) [Cracked](Link-To-Crack)
[Output]
---
(Optional spoiler)
Reglas
- No puede tomar ninguna entrada para su programa.
- El programa debe usar al menos 1 byte, pero no puede exceder los 255 bytes.
- La salida en sí también está limitada a 255 bytes.
- El programa debe tener resultados de salida consistentes cuando se ejecuta varias veces.
- Si su envío no se resuelve en 7 días, puede marcarlo como "seguro".
- Al marcarlo como seguro, publique la solución deseada y califíquelo como
c*n
. - Solo marque una respuesta como "segura" si realmente desea el +15 para una respuesta aceptada; Es más divertido ver cuánto tiempo puedes ir.
- Al marcarlo como seguro, publique la solución deseada y califíquelo como
Victorioso
- La publicación no descifrada con la
c*n
puntuación más baja gana el hilo del policía. - Esto se decidirá después de 10 respuestas seguras, o unas pocas semanas.
Advertencias
- Si se siente arrogante, puede decirle al usuario el algoritmo usando una etiqueta de spoiler .
Envíos sin descifrar:
fetch("https://api.stackexchange.com/2.2/questions/147635/answers?order=desc&sort=activity&site=codegolf&filter=!.Fjs-H6J36vlFcdkRGfButLhYEngU&key=kAc8QIHB*IqJDUFcjEF1KA((&pagesize=100").then(x=>x.json()).then(data=>{var res = data.items.filter(i=>!/^#.*cracked/im.test(i.body_markdown)).map(x=>{const matched = /^ ?#{1,3} ?(?:(?:(?:\[|<a href ?= ?".*?">)([^\]]+)(?:\]|<\/a>)(?:[\(\[][a-z0-9/:\.]+[\]\)])?)|([^, ]+)).*[^\d](\d+) ?\[?(?:.*(?:byte|block|codel)s?)(?:\](?:\(.+\))?)? ?(?:\(?(?!no[nt][ -]competing)\)?)?/gim.exec(x.body_markdown);if(!matched){return;}return {link: x.link, lang: matched[1] || matched[2], owner: x.owner}}).filter(Boolean).reverse().forEach(ans=>{var tr = document.createElement("tr");var add = (lang, link)=>{var td = document.createElement("td");var a = document.createElement("a");a.innerHTML = lang;a.href = link;td.appendChild(a);tr.appendChild(td);};add(ans.lang, ans.link);add(ans.owner.display_name, ans.owner.link);document.querySelector("tbody").appendChild(tr);});});
<html><body><h1>Uncracked Submissions</h1><table><thead><tr><th>Language</th><th>Author</th></tr></thead><tbody></tbody></table></body></html>
cops-and-robbers
Urna de pulpo mágico
fuente
fuente
Respuestas:
Haskell , 173 bytes, 8 únicos, 1384 puntos, seguro
Parece que esta respuesta quiere proporcionar una etiqueta relevante a la pregunta, mientras usa solo 8 bytes diferentes.
Como de costumbre, su solución debería funcionar pegándose en el bloque de código en TIO: ¡ Pruébelo en línea!
Solución
Sí, este es el código válido de Haskell: ¡ Pruébelo en línea!
Cómo funciona
El guión bajo
_
se utiliza como comodín en la coincidencia de patrones de Haskell.'
se usa para caracteres, por ejemplo'a'
. Sin embargo, ambos_
y'
también son parte de los caracteres permitidos para los nombres de los identificadores (Dentro de algunas restricciones, por ejemplo,'
no puede aparecer al comienzo del nombre). Por lo tanto__
,_'
,_'_
,_''
y así sucesivamente son todos los nombres de los identificadores válidos. Usando algunos nombres más descriptivos, el código anterior se convierte enLa primera línea produce la cadena
"[tag:reverse_engineering]"
si cada variable se asigna al carácter correcto. Esta asignación se logra en la segunda línea:['_'..]
produce la cadena"_`abcdefghijklmnopqrstuvwxyz{|}~ ... "
, la bruja se corresponde con el patrón_:_:a:_:_:_:e:_:g:_:i:_:_:_:_:n:_:_:_:r:s:t:_:v:_
para obtener la asignación deseadaa='a'
,e='e'
y así sucesivamente.fuente
Brain-Flak, 62 bytes totales, 6 únicos, 372 puntos, Agrietados
Aquí está su salida:
Hay algo especial en este número, pero no está en el OEIS ;)
En caso de que esté pensando en usar una herramienta de computadora para resolver esto, no tiene suerte, el golfista entero obtiene 110 bytes para este número:
Pruébalo en línea!
Tendrás que hacer esto a mano.
Consejos
Aquí hay algunos consejos, revelaré más y más consejos útiles con el tiempo. ¡Buena suerte!
Mi solución
Pruébalo en línea!
Este usa uno de mis trucos favoritos, el código
calcula el enésimo término de A090809 . El envío completo solo rellena el código con un 97 para hacer un gran número.
fuente
MATL , 6 bytes × 3 únicos = 18 puntos. Agrietado
fuente
i.^(0:3)
no da imprecisiones de coma flotante en Octave, peroJ4:q^
sí en MATL ...num2str(..., '%.15g ')
. Ver por ejemplo aquí . Pero eso no sucede para MATL que se ejecuta en Matlab. La conclusión es quenum2str
funciona de manera ligeramente diferente en Matlab y en OctaveGelatina , 7 bytes × 6 única = 42 puntos, agrietada
Pruébalo en línea!
fuente
ḷ
, por ejemplo. Ahora es demasiado tarde, supongo ...Malbolge , 15 bytes, 13 únicos, puntaje 195. ¡Seguro!
Salidas:
¡Seguro! Código previsto:
Pruébalo en línea!
fuente
JavaScript (ES8), 103 bytes, 42 únicos (4,326 puntos) [SEGURO]
Salida hexdump:
El puntaje es anormalmente grande, lo sé, pero de todos modos creo que este puede ser interesante de descifrar. El programa es una función que devuelve una cadena (solo para evitar confusiones, esto no es REPL).
Supongo que no debería ser demasiado difícil, todo se trata de encontrar el patrón.
Solución
Parece que fue duro de lo que había pensado, de acuerdo con el hecho de que nadie lo había resquebrajado. Creí que puede haber múltiples soluciones que son fáciles de diseñar. De todos modos, aquí está la solución prevista:
Por alguna razón, no se muestra correctamente como fragmento de código. Aquí está el enlace TIO .
fuente
Octava, 13 bytes, 5 caracteres únicos, puntuación: 65. ¡Seguro!
Este no debería ser demasiado difícil. Si no quieres saltar a los más difíciles de inmediato, podría ser un buen primer desafío :)
Nota: Cuando leí la pregunta, pensé que decía: generar un número, no generar una cadena. La salida se ve así en TIO:
Y se verá así si tienes
format long
o puede imprimirlo así:
Lo que tenía y explicación:
Simple como eso. =)
Explicado:
Normalmente escribiría esto como:,
prod('prodprod')
pero Octave trata lo que viene después del nombre de la función como una cadena (matriz de caracteres). Estos se convierten implícitamente a sus valores ASCII y se multiplican juntos.fuente
MATL, 4 bytes, 4 únicos, 16 puntos. Agrietado
Salida:
Lo que tuve
fuente
Java 8 (programa completo), 97 bytes totales, 34 únicos, 3298 puntos ( descifrado por @RobertoGraham )
Salida:
NOTA: Este es un programa completo. Si
()->
se permiten funciones en forma de :Java 8 (función lambda), 40 bytes totales, 18 únicos, 720 puntos ( descifrado por @ user202729 )
Probablemente sea bastante difícil, pero lo que sea ... No es que Java vaya a ganar nada con esta cantidad de puntos de todos modos ...
Consejos:
Solución prevista:
Es bastante divertido (e impresionante) cómo las dos grietas dadas son completamente diferentes de lo que tenía en mente, ¡pero para los dos crackers!
fuente
MATL, 11 bytes, 10 únicos, 110 puntos. ¡SEGURO!
Salida:
Solo para "ayudarte" a uno de la manera:
Este es el producto de:
y es uno menos que el
372884884433
rd prime.Y aquí hay algunos consejos reales. Si no se resuelve en unas pocas horas, revelaré la solución.
El código real:
Explicación:
fuente
Haskell , 10 bytes, 3 únicos, 30 puntos, agrietados
Un buen número que contiene cada dígito, aunque solo se utilizan 3 bytes únicos.
La solución prevista funciona reemplazando la parte del código en el siguiente enlace TIO: ¡ Pruébelo en línea!
fuente
Haskell , 29 bytes, 15 bytes únicos, 435 puntos, agrietados
Esta es una cadena que contiene
3
73 veces, y un solo disimulado4
.La solución prevista funciona reemplazando la parte del código en el siguiente enlace TIO: ¡ Pruébelo en línea!
Editar: H.PWiz encontró una grieta válida (que incluso podría jugar hasta 28 bytes), pero no la solución prevista.
Consejos:
fuente
Mathematica, 8 bytes, 3 únicos, 24 puntos Agrietados
fuente
Explotar , 9 bytes totales, 4 únicos, 36 puntos
Salida:
Tenga en cuenta que la documentación no se alinea completamente con la implementación de este lenguaje: escribí esto un día y no lo he tocado desde entonces, por lo que cualquier error en la implementación que pueda existir ahora son definitivamente características.
Además, no creo que este lenguaje sea completo de Turing, por lo que probablemente podrías imponerlo, pero eso es aburrido.
Te daré una recompensa considerable si puedes automatizar la producción de ingeniería inversa en un código Explode óptimamente corto.
fuente
Octava, 4 bytes, 3 únicos, 12 puntos: agrietado
Veamos qué tan rápido va este.
fuente
Pyth, 7 bytes, 6 únicos, 7 * 6 = 42 puntaje total
Mira el hilo de consejos de Pyth para inspirarte;)
fuente
Gelatina , 3 bytes × 3 únicos = 9 puntos, agrietados
Pruébalo en línea!
Otro intento de Jelly, esta vez más desafiante, espero.
fuente
Alice , 9 bytes x 8 únicos = 72 puntos Agrietados
Pruébalo en línea!
Este debería ser divertido de descifrar
fuente
Excel, 22 bytes, 16 únicos, 352 puntos, Agrietado
Esto puede no ser muy difícil de descifrar, pero puedo usar una función que de otro modo nunca llegaría a usar. Además, el puntaje no ganará nada a menos que muchos otros se quiebren.
fuente
PowerShell, 7 bytes, 5 únicos = 35 puntos Agrietados
Salida:
fuente
Gelatina , 8 bytes * 6 únicos = 48 ( Agrietado )
Puedes intentar descifrarlo aquí .
fuente
Haskell , 30 bytes, 17 únicos, 510 puntos, agrietados
La solución prevista funciona reemplazando la parte del código en el siguiente enlace TIO: ¡ Pruébelo en línea!
Utiliza el mismo enfoque que mi respuesta anterior , que fue descifrado con un enfoque diferente.
Algunos consejos:
fuente
Javascript,
11
Bytes , Bytes7
únicos (77 puntos) (Agrietado)Esto debería ser realmente fácil.
fuente
Jalea , 8 bytes , 2 únicos, 8 × 2 = 16 puntos - ¡Seguro!
(Solo hay 8,355,840 posibles programas de este tipo, por lo que debería romperse, supongo).
Comienza en ¡Pruébalo en línea!
¿Cómo?
fuente
°
, pero no pensé⁾
y pensé que tenía que seguir empezando desde 0.⁽
es diferente de⁾
, no están relacionados de ninguna manera (excepto que consumen los dos caracteres que siguen).⁽
.Jelly , 4 bytes , 4 únicos, 4 × 4 = 16 puntos - ¡Seguro!
Tenga en cuenta que la salida tiene 255 bytes de longitud, justo en el límite.
Sí, el mismo puntaje que mi otra entrada Jelly (aún no descifrada) .
Comienza en ¡Pruébalo en línea!
¿Cómo?
fuente
r
entre dos listas de índice de página de códigos y concatenar con otra lista de índice de página de códigos para reducirlo a 35 bytes , pero también hay bytes repetidos allí y 35 >> 4 ... ¡buena suerte!C (máquina del complemento a dos, sizeof (int) = 4), 76 bytes y 35 bytes únicos para una puntuación de 2660, Seguro
Salida:
que tiene 203 bytes de longitud.
fuente
main(i){for(;42>i;printf("%u","eirwtlegowvnfemuwphejsno"[abs(24-i++)]-'n'));}
'N'
a78
(código char deN
).CJam, 15 bytes * 10 únicos = 150 puntos
Mala puntuación, pero con suerte será difícil de descifrar.
Nota: Por el momento, he olvidado cuál es la respuesta. Como tal, lo mantendré abierto hasta que yo u otra persona podamos descifrarlo.
fuente
CJam, 15 bytes * 10 únicos = 150 puntos
Nota: Por el momento, he olvidado cuál es la respuesta. Como tal, lo mantendré abierto hasta que yo u otra persona podamos descifrarlo.
fuente
Japt , 5 bytes, 5 bytes únicos (25 puntos) ( Agrietado by Scrooble)
Salida:
3628801
fuente
Perl 5 , 31 Bytes, 18 Bytes únicos (558 puntos) - seguro
Solución prevista (¡ Pruébelo en línea! ):
(esto calcula el factorial de 111)
fuente