Ladrão
Nesse desafio, seu objetivo é decifrar algum código escrito pelos policiais (o código deles está aqui ) modificando-o. Você decifrou o código se:
- Seu código modificado tem uma distância máxima de levenshtein de 10 da deles e possui menos caracteres
- A função, dada a mesma entrada válida, produzirá a mesma saída no mesmo idioma da mesma versão
- Você postou sua versão modificada dentro de 168 horas (1 semana) da postagem original.
Seu código modificado deve ter apenas ASCII imprimível.
Depois de postar uma versão quebrada, você deve deixar um comentário no código original dizendo que ela foi quebrada com um link para o seu crack.
Sua pontuação é a distância total de Levenshtien entre todas as suas respostas. Maior pontuação ganha.
A discussão dos policiais acompanhantes pode ser encontrada aqui .
primes
code-bowling
cops-and-robbers
Nathan Merrill
fonte
fonte
Respostas:
Python 3, 9500 a 9499, por Sp3000, distância 10
Original
Modificado
Mudou o
\\
para\
, e mudou-se alguns caracteres aleatórios para obter uma melhor pontuação.fonte
Original por bitpwner, Python, 5199
Versão modificada Python, 5198 Levenshtein Distance 2 :
Substituído
'zlib'
por um alias mais curto'zip'
.fonte
CJam 7531 original do usuário23013
Versão modificada CJam 7526 Distance 10
Substituiu 5
\"
porN
fonte
Nuuuq
é melhor, o que remove as 5 cadeias vazias da pilha.CJam, 6768, pelo usuário23013, distância 10
Original
Modificado
Devo dizer que a ideia por trás do código original é muito boa. Faça uma função de hash em que cada personagem depende do resultado modificado do anterior. Isso impossibilita a retirada de qualquer caractere dentro da string. No máximo, você pode começar a remover caracteres do final. Mas começa a retirar caracteres do código de impressão principal real.
A única coisa que @ user23013 perdeu foi que o código unhashing ainda podia ser jogado: D.
Tenho certeza de que, se minha resposta quebrada fosse a submissão real, seria impossível decifrá-la.
fonte
PHP por Tryth, distância 10
Original (3337):
Modificado (3329):
Além de remover 8 caracteres diretamente, troquei as aspas simples por aspas duplas para aumentar o Levenshtein em 2.
fonte
Original por MickyT- R, 2496
Versão modificada R, 2492 Distância 9 de Levenshtein :
Substituído
sqrt(1e8)
pelo valor literal10000
.fonte
Original de Yimin Rong (PHP):
Versão modificada:
Removido
$N--,
.Alterado
$N>0
para$N-->0
.Em seguida, alterou todas as instâncias de
$N
para$M
.Distância 9 .
Isso funciona para valores negativos.
fonte
Original por Optimizer, CJam, 816
Versão modificada CJam, 815 Levenshtein Distância 10
Alterado
04703657K)_#b:c~
para4e7K)_#b:cW';t~
.fonte
:c);~;
Java, 6193 por Geobits, distância 10
Original:
Modificado:
Talvez da próxima vez meu amigo;)
fonte
Mathematica, por Optimizer, 21 a 18, distância 10
de
para
fonte
Python 3, 9302 a 9301, por Sp3000, distância 10
Original
Modificado
fonte
Original de Timtech - TI-BASIC, 4513
Versão modificada TI-BASIC, 4505 Levenshtein Distance 10 :
Eu mudei o comprimento da corda e o divisor
fonte
Original de Brandon C # 233 :
Versão modificada C # 231 Levenshtein Distance 10 :
Nomes de variáveis alterados para atingir 10 distâncias para novas regras de pontuação.
Versão modificada C # 231 Levenshtein Distance 2 :fonte
for
loop ??C #, Shawn Holzworth (161) , distância 10
Eu usei um truque de golfe padrão para remover um caractere: curto
2*n+1
paran-~n
.fonte
Java 8, 1785, por TheBestOne, distância 10
Original
Modificado
Nome do método
primes
->p
. Não tocou no código de bytes, lol.fonte
PHP, 73, por Yimin Rong, distância 10
Original
Modificado
Removido
gmp_strval
, pois oGMP
objeto implementa aSerializable
interface. Demonstração em ideone .fonte
Matlab, por flawr, distância 10
Original
Versão modificada
Removido um espaço do recuo na linha 3 (1 remoção). Alterado
char(101)
parachar(98)
(2 substituições, 1 remoção) e alterou a soma de 941 para 0 (1 substituição e 2 remoções). Foram removidos 3 espaços da linha 4 travessão (3 remoções).Distância 10 .
(Observe que acho que o 941 no código do flawr deve ser 1873, caso em que não consigo remover tantos espaços de recuo, mas posso manter a mesma distância de Levenshtein).
fonte
e
s no meu código fonte original, que deve ser igual a 941 aqui (um primo =).)15 29 49 51 60 64 76 78 86 100 126 128 137 141 179 187 191 195
.CJam, 844 a 841, pelo Optimizer, distância 10
Original
Modificado
fonte
1225469401974
alterado para1225469408974
.Java, TheBestOne, 485, distância 10
Acabei de remover os dois pares vazios desnecessários de colchetes angulares. O mais engraçado é que nem me compilaria com eles.
fonte
CJam, 847 a 846, pelo Optimizer, distância 10
Original
Modificado
fonte
CJam, do Optimizer, 24 a 22, distância 10
De
para
fonte
Java, 328, por TheBestOne, distância 10
Original
Modificado
Altere regex
"^1?$|^(11+?)\\1+$"
para"^(11+)\\1+$"
(6 remoções) e assuma que a entrada para a função de teste principal é pelo menos 2 (2 adições, 1 troca). Modificado o número inicial para testar dei = 0
parai = 1
(desde que a função prime é chamada porb(++i)
, portantoi
, deve começar de 1) (1 swap).fonte
Pontuação total: 10
Resposta original de TheBestOne:
Modificado com a distância 10:
Resposta original de Yimin Rong:
Modificado com a distância 10:
David pode ter me derrotado neste:Resposta original de flawr:
Modificado com a distância 10:
Edit: David me venceu.
Resposta original de Yimin Rong:Modificado com a distância 10:
Com o antigo sistema de pontuação, isso me daria 10,7.
Edit: As regras continuam mudando. Eu acho que isso não conta agora.fonte
Java, 6193, por Geobits, distância 10Não concorrente, pois eu demorei muito na edição. Deixe aqui para referência.
Modificado
Para demonstrar o que realmente foi feito, esta parte do código:
é transformado para isso:
Se você alinhar os dados corretamente, poderá se livrar da maioria dos swaps.
(
na frente;
por)
/*
e 2 caracteres do final de*/
.*/
.O comprimento do delta é -3.
fonte