Nota : Este desafio está encerrado. Qualquer envio de futuros policiais não será considerado para a resposta aceita. Isso é para garantir que ninguém possa postar uma regex muito simples no futuro que só permaneça sem quebra, porque ninguém mais está interessado no desafio.
O desafio da polícia
Você deve escrever um regex curto e ofuscado, atendendo às seguintes especificações:
Você pode escolher qualquer sabor que seja livremente testável on-line. Há uma boa lista de testadores on - line no StackOverflow . Em particular, o Regex101 deve ser bom para você começar, pois suporta os sabores PCRE, ECMAScript e Python. Você pode aumentar o limite de tempo limite, clicando na chave no canto superior direito, se necessário. Inclua o testador que você escolher na sua resposta.
Se nenhum testador adequado estiver disponível para o seu tipo de escolha, você também pode usar um intérprete on-line como o ideone e escrever um pequeno script no idioma do host que as pessoas possam usar para testar seu envio.
- Você pode usar qualquer recurso desse tipo, que não invoque diretamente o idioma do host (como os recursos de avaliação de código do Perl).
- Da mesma forma, você pode usar quaisquer modificadores (se houver algum sabor), a menos que resultem na avaliação do código.
- Seu regex deve aceitar pelo menos uma sequência S e rejeitar pelo menos uma sequência T , cada uma com pelo menos 16 e não mais de 256 caracteres, em um período de tempo razoável (não significativamente maior que um minuto). S e T podem conter caracteres Unicode que não são ASCII, desde que haja uma maneira de inseri-los no testador online. Qualquer par de strings será a chave para o envio.
- Sua regex pode demorar arbitrariamente em qualquer outra entrada.
O núcleo do desafio é criar uma regex cuja chave é difícil de encontrar. Ou seja, deve ser difícil dizer qual string não corresponde ou qual string corresponde (ou potencialmente ambas, se a regex levar dias para terminar em todas, exceto as cadeias de caracteres da chave).
O desafio dos ladrões
Todos os usuários, incluindo aqueles que enviaram suas próprias regex (s), são incentivados a "quebrar" outros envios. Um envio é quebrado quando uma de suas chaves é postada na seção de comentários associados.
Importante: Certifique-se de que as duas seqüências postadas tenham entre 16 e 256 caracteres, mesmo que quase todas as sequências possam ser usadas para uma parte da chave.
Se um envio persistir por 72 horas sem ser modificado ou quebrado, o autor poderá revelar uma chave válida editando-a em uma tag de spoiler em sua resposta. Isso tornará sua resposta "segura", ou seja, não poderá mais ser quebrada.
Apenas uma tentativa de cracking por envio por usuário é permitida. Por exemplo, se eu enviar ao usuário X: "Sua chave é 0123456789abcdef
/ fedcba9876543210
." e eu estou errado, o usuário X rejeitará meu palpite como incorreto e não poderei mais enviar palpites adicionais para esse envio, mas ainda posso quebrar outros envios (e outros ainda podem quebrar esse envio).
Os envios rachados são eliminados da disputa (desde que não sejam "seguros"). Eles não devem ser editados ou excluídos. Se um autor deseja enviar uma nova regex, deve fazê-lo em uma resposta separada.
Não decifre sua própria submissão!
Nota: Para seqüências longas nos comentários sem espaços, o SE insere quebras de linha manuais na forma de dois caracteres Unicode. Portanto, se você postar uma chave nos backticks, que é tão longa que se entrelaça entre caracteres que não são do espaço, não será possível copiar a chave novamente em um testador de regex. Nesse caso, forneça um link permanente ao testador de regex relevante com o regex do policial e sua chave - a maioria dos testadores inclui esse recurso.
Pontuação
A pontuação de um policial será o tamanho de sua regex em bytes (padrão mais modificadores, delimitadores em potencial não são contados), desde que não tenha sido decifrado. A pontuação mais baixa de um envio "seguro" será vencedora.
A pontuação de um ladrão será o número de envios que eles quebraram. Em caso de empate, o tamanho total de bytes dos envios que eles quebraram será usado como desempate. Aqui, a maior contagem de bytes vence.
Como mencionado acima, qualquer policial pode participar como assaltante e vice-versa.
Manterei tabelas de classificação separadas para as duas partes do desafio.
Classificação
Última atualização: 19/10/2014, 20:33 UTC
Policiais:
Os envios em itálico ainda não são seguros.
- nneonneo , 841 bytes
- Wumpus Q. Wumbley , 10.602 bytes
- Sp3000 , 52.506 bytes
- user23013 , 53.884 bytes
- nneonneo , 656.813 bytes
Ladrões:
- user23013 , Rachado: 11, Tamanho total: 733 + 30 + 2.447 + 71 + 109 + 121 + 97 + 60 + 141 + 200.127 + 7.563 = 211.499 bytes
- nneonneo , Rachado: 10, Tamanho total: 4.842 + 12.371 + 150 + 3.571 + 96 + 168 + 395 + 1.043 + 458 + 17.372 = 40.466 bytes
- Wumpus Q. Wumbley , Rachado: 6, Tamanho total: 22 + 24 + 158 + 32 + 145.245 + 145.475 = 290.956 bytes
- Dennis , Rachado: 2, Tamanho total: 70 + 73 = 143 bytes
- harius , Rachado: 1, Tamanho total: 9.998 bytes
- g.rocket , Rachado: 1, Tamanho total: 721 bytes
- stokastic , Rachado: 1, Tamanho total: 211 bytes
- Sp3000 , Rachado: 1, Tamanho Total: 133 bytes
- TwiNight , Rachado: 1, Tamanho total: 39 bytes