Para el desafío de la policía principal, haga clic aquí
AVISO : este desafío ahora está cerrado. Las grietas que se publiquen ahora no se contarán en la tabla de clasificación y la respuesta aceptada no cambiará.
Reto
Dado el programa original, su salida y la salida del programa modificado, debe averiguar qué caracteres deben cambiarse, eliminarse o agregarse para obtener la salida esperada.
Cuando descifre el código de alguien, deje un comentario con un enlace a su crack en su respuesta.
Formateo
# [<language>, <username of program owner>](<link to answer>)
## Description
<description of change and how you found it>
## Code
<changed code>
Victorioso
La persona que ha encontrado la mayor cantidad de soluciones gana.
Tabla de clasificación
13 grietas:
- Dennis
8 grietas:
- Alex Van Liew
5 grietas:
- Sp3000
- isaacg
3 grietas:
- Luis Mendo
- jimmy23013
- Dom Hastings
2 grietas:
- mbomb007
- Sluck49
1 grieta:
- El numero uno
- Jakube
- Orgulloso Haskeller
- David Zhang
- samgak
- paul.oderso
- rayryeng
- mgibsonbr
- n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳
- Stewie Griffin
- abligh
cops-and-robbers
Decaimiento Beta
fuente
fuente
Respuestas:
CJam, por Mauris
Descripción
El código original de Mauris hace lo siguiente:
Ningún otro operador matemático de CJam produciría un número tan grande para entradas pequeñas, por
:#
lo que no puede modificarse. Dado que#
, cuando se usa para exponenciación, solo toma enteros como entrada,:i
no se puede eliminar también. Esto deja solo un lugar para modificar la entrada: la cadena"f~"
.No importa cuántos caracteres contenga la cadena, el resultado será una torre de poder asociativa a la izquierda. CJam admite caracteres en el rango de 0 a 65535 (con la excepción de los sustitutos), por lo que tenemos que expresar la salida como b n × k × j , donde b , n , k y j son enteros en ese rango.
El logaritmo decimal del número entero que resulta del código modificado es ligeramente más pequeño que log 10 (2.44 × 10 242545 ) = log 10 (2.44) + 242545 , por lo que podemos dividir este valor por los logaritmos de todas las bases posibles para encontrar los valores adecuados para n × k × j .
De hecho:
Comparar los primeros 8 dígitos resultó ser suficiente.
Esto significa que podemos expresar la salida como 5 347,004 = 15625 57,834 = 125 9 × 102 × 126 , por lo que es suficiente reemplazar
"f~"
con"㴉"
o"} f~"
.Código
o
Tenga en cuenta que los espacios en el código ASCII en realidad deberían ser un tabulador.
Intentar ejecutar este código en el intérprete en línea es probablemente una mala idea, pero así es como puede verificar los resultados desde la línea de comandos:
fuente
~f
en algún lugar del programa.Ruby, histocrat
Descripción
Se cambió x para ser una matriz en lugar de escalar agregando
*
Cambió el último
9
para que sea una cadena en lugar de un número agregando?
El resultado está hecho de una matriz con un único elemento (
[9]
) multiplicado 9 veces y luego implosionado con un"9"
separador.Código
fuente
Pitón 2, pez lodoso
Descripción
A través de pruebas y tribulaciones que implican factorizar grandes números y buscar factores consecutivos, me di cuenta de que cambiar el 87654 a 58116 sería suficiente. Entonces, factoricé 58116 como 87 * 668. Luego me di cuenta de que 01234 = 668, así que solo necesitaba cambiar 87654 a 87 y eliminar el 01234 por completo. Esto se logra con un comentario.
Código
fuente
print sum(range(054321)*9876)*87#654)/01234
)Shakespeare, Above Fire
En la escena III, uno tiene que cambiar a Claudio en Claudio en el siguiente fragmento:
Código modificado:
Usando el compilador vinculado por @AboveFire, esto imprime
11
.fuente
Prólogo, Fatalizar
Descripción
Añadir dos
\
s.\
es negación bit a bit y\/
es bit a bit o.Código
fuente
MATLAB / OCTAVE, Stewie Griffin
Un poco de aritmética compleja.
fuente
C, LambdaBeta
Descripción
Conviértete
main(a,_)
enmain(_)
. El primer argumento de main es elargc
que se inicializa como1
.Código
fuente
Python 2, rp.belrann
Cambie la comprensión de la lista más externa a una comprensión establecida. Crédito parcial a @ mbomb007, que eliminó todas las soluciones "aburridas" (intercambiar
x
y cambiary
, ajustar operadores, cambiar el rango).Explicación:
En el original,
[(x,y)[x%2]for x in[y for y in range(8)]]
genera la siguiente lista:Esto se debe a que en Python 2.7, la
y
comprensión en la lista interna se filtra en el ámbito de cobertura en su último valor conocido (que, al final de un rango, es 7). Entonces, en la tupla,y
siempre es 7.x
, sin embargo, pasa por la lista como normal, que va de 0 a 7. Cuandox
es par, elige el valor dex
, cuando es impar, eligey
(que siempre es 7). Noté que si incluía exactamente un 7 y todos los demás valores dex
, obtenía 19; entonces me di cuenta de que podía transformar la comprensión externa en una comprensión establecida, lo que eliminaría todos los valores duplicados y me dejaría con exactamente 19.Esto fue bastante inteligente, no creo que haya usado antes una comprensión fija. Prestigio.
fuente
print len('~'*sum([(x,y)[x%2]for x in[y for y in range(6)]]))
vuelve21
. Simplemente asigne el código a una variable y luego imprima si es igual a la cadena que desea. Si vesTrue
, lo descifraste._
me traicionó, supongo.Jonas, Matlab / Octave
Descripción
Noté que la respuesta era
i^pi
, así que solo tuve que convertirmesin
en un nop.Código
s
->0
,n
->+
fuente
Bash, Dennis
Código original:
Salida original:
Código modificado:
Salida modificada:
Explicación:
En Bash puede generar una lista de elementos separados por comas dentro de un par de llaves, así:
huellas dactilares
Entonces, el código modificado está imprimiendo una lista de nada, los números 1..9, nada.
fuente
MATLAB, Luis Mendo
Código original:
Nueva respuesta:
Descripción:
Cambiado
-sin
apsi
, la función de polígama en MATLAB. El-
signo se sustituye porp
yn
se elimina.fuente
C, LambdaBeta
Descripción
Cambie
-1
a*0
para que el resultado de la multiplicación sea0
(un valor falso).Código
fuente
Brainfuck, Kurousagi
Descripción
Retire el primero
>
y cambie el primero<
a.
Probado en brainfuck.tk . Tenga en cuenta que la salida no coincide con el post de Kurousagi exactamente , debido a SE comiendo caracteres no imprimibles.
Código
fuente
Fantom, Caín
La seguridad a través de la oscuridad es una forma de seguridad muy pobre (especialmente cuando los dos métodos están uno al lado del otro en los documentos de Fantom y cualquiera que sepa cómo es un flotador sabrá inmediatamente qué hacer).
fuente
CJam, por Basset Hound
Calcula e 25 . Pruébalo en línea.
El intérprete en línea da un resultado ligeramente diferente en mi navegador, lo que parece ser un problema de redondeo.
El intérprete de Java imprime
7.200489933738588E10
, que es el resultado deseado, pero en un formato diferente.fuente
Python 2, Sp3000
Descripción
Cambiado
01234
a0x1234
ymin
para9in
.El hecho de que
4669 = (01234-1)*sum(m<<m in R for m in R)
es engañoso.Código
fuente
m<<m in(m,n)
, pero lo principal era cambiar elmin
ain
.MATLAB / Octave, Stewie Griffin
Descripción
Esto requería negar la entrada a la función anónima
g
, así como cambiar el factor de escala de lag
función a 2 en lugar de 7:Código
fuente
Perl, sobretodo
Descripción
Agregar operador de repetición de cadena,
x
e inserte un dígito adicionalCódigo
fuente
Java, TheNumberOne
Descripción
El programa es una implementación única
Random.next()
con una semilla inicial deInteger.MAX_INT
y todos los números hexadecimales convertidos a decimal. Cambiar la semilla al complemento deMAX_INT
genera la salida:(dado que debe haber exactamente dos cambios, elija cualquier tipo de cambio sin operación: agregar un espacio en algún lugar, un punto y coma adicional, etc.)
fuente
Integer.MAX_VALUE
Integer.MAX_VALUE+1
Integer.MIN_VALUE
+1
pero como lo estaba haciendo en Python, simplemente rodó mucho, jajaja. Ese fue mi primer pensamiento, en realidad.Brainfuck, AboveFire
este programa es una modificación de este código, me responde una cookie. esa respuesta funciona primero calculando previamente una tabla de códigos ascii útiles de caracteres útiles, y luego tiene tres declaraciones condicionales formadas por tres bucles a los que se ingresa teniendo un
1
posición correcta.El comienzo de cómo rompí el código es que el patrón de repetición en la salida modificada es principalmente lo que se imprime si ingresas el tercer bucle con la tabla desplazada a la izquierda.
(los caracteres adicionales están marcados con paréntesis)
fuente
Pitón 2, pez lodoso
Descripción
Cambie
<<
a<>
(versión obsoleta de!=
) y0x156
a0156
, el punto de código para"n"
(que aparece 3 veces en la cadena de longitud 23'<built-in function sum>'
).Código
fuente
JavaScript, por Razvan
Descripción
La salida modificada es claramente el número natural de Euler, al que se puede acceder como
Math['E']
.Al cambiar
''
a'3'
y32
a36
,String.fromCharCode
genera elE
.Código
fuente
Fantom, Caín
Descripción
La indexación de la matriz ya está configurada, así que solo necesito hacer un 55. Honestamente, la parte más difícil fue descargar el idioma.
Código
(Insertó una coma,
0
->3
)fuente
Shakespeare, Above Fire
NO CORRECTO - lo siento :(
Lo investigaré más cuando llegue a casa del trabajo. En el valor original de Claudio es 1132462081 y el valor de Claudio es 1
En la escena final, el valor de Claudio se imprime dos veces,
abre tu corazón x2 = valor de impresión de la otra persona en el escenario (Claudio). Entonces, si cambia Claudius a Claudio (2 caracteres), se imprimirá el valor de Claudius, que es 1, dos veces
fuente
VBA por JimmyJazzx
Cambiado
IRR
aMIRR
y cambió5
a una,
modo hay 3 parámetros.Encontré esto mientras buscaba cómo
IRR
funciona la función de Excel . Había un artículo: Cómo la función MIRR de Excel puede arreglar la función IRR . Eso me avisó. Intento inteligente, sin embargo. Nunca había usado VBA antes, así que eso también fue interesante.fuente
Matlab / Octave, Jonas
Descripción
En la última línea, agregue
'
para transformararg'
en la cadena'arg'
, que luego se interpretará como números ASCII. Y luego agregue otro'
al final para mantener el formato de columna.Lo casi innecesario
'
en el código original era la pista principal. Además, en retrospectiva, el hecho de quearg
se definió por separado (en lugar de directamente dentro delsin
línea) debería haber parecido sospechoso.Código
fuente
bc, abligh
Simplemente insertó los operadores matemáticos. Tomó alrededor de 1 minuto para resolver una vez que miré qué era bc y qué operaciones matemáticas tenía. Lo primero que pensé fue en la división, pero no había factores comunes que se vieran bien. Entonces inmediatamente fui por exponenciación y módulo. Al menos 15 dígitos fueron necesarios para el módulo b / c de la salida esperada. Después de eso, lo adiviné dos veces y lo encontré.
fuente
Lua, TreFox
Descripción
"_G" es la tabla global, por lo que "_G.load" se refiere a la función global "load". La conversión de una función en una cadena da como resultado la devolución de la dirección de la función, que luego se convierte en la longitud de la cadena por el operador de longitud "#".
Código
Además, dado que esta es mi primera publicación aquí, no puedo hacer un comentario sobre la respuesta original.
fuente
0x321a40c6d0
, para una salida final de22
.load
, y sabía que se_G
refería a la tabla de símbolos global ... Simplemente no puse los dos juntos.Python, rp.beltran
Descripción
Noté que las letras necesarias siempre eran 2 delante de un dígito. cambiando el tercero
\w
para\d
obtener todas las letras correctas, excepto los espacios.\D
fue el único\
grupo que pude encontrar que permitía letras y espacios.Código
w
->D
,w
->d
en la expresión regular.fuente
Pyth, Isaac
Descripción
El código original hace lo siguiente:
Desde 156490583352162063278528710879425690470022892627113539022649722 - 58227066 da 156490583352162063278528710879425690470022892627113538964422656 , que es igual a 2 26 × 3 × 7 × 7477 × 381 524 422 711 × × 17007550201751761 2288745700077000184147 , la salida deseada se puede obtener mediante la sustitución
^3y21
con algo que se evalúa como un divisor de este producto y es mayor que 58.227.066 .El
^
en el código original sugiere que podríamos usarlo para calcular una potencia de 2 , el 3 que podríamos calcular un divisor de ajuste de la forma 3 × 2 n .Ambos son engañosos. Las soluciones con una distancia Levenshtein de 3 (
%CG^2 26
,%CG^y2 13
,%CG^4y13
) o 4 (%CG.<3y13
) se encuentran fácilmente, pero la solución a una distancia de 2 requiere un enfoque diferente.El alfabeto en minúsculas (
G
) tiene 26 letras, por lo que su conjunto de potencia (el conjunto de todas las secuencias estrictamente crecientes de letras minúsculas) tiene 2 26 elementos. Al reemplazary2
conyG
, calculamos este conjunto de potencia.Podemos recuperar la longitud del conjunto reemplazando
3
conl
, lo que nos deja^lyG1
, es decir, 2 26 elevado a la primera potencia.Código
Tenga en cuenta que esto solo funcionará en una computadora con suficiente memoria disponible (aproximadamente 6.43 GiB, según
time
), por lo que no funcionará con el intérprete en línea.A continuación, le mostramos cómo puede verificar los resultados desde la línea de comandos:
fuente