Nota : Este desafío ahora está cerrado. Cualquier presentación de policías futuros no será considerada para la respuesta aceptada. Esto es para garantizar que nadie pueda publicar una expresión regular muy simple en el futuro que solo permanezca sin descifrar porque ya nadie está interesado en el desafío.
El desafío de los policías
Debe escribir una expresión regular breve y ofuscada, que satisfaga la siguiente especificación:
Puede elegir cualquier sabor que se pueda probar libremente en línea. Hay una buena lista de probadores en línea en StackOverflow . En particular, Regex101 debería ser bueno para comenzar, ya que admite los sabores PCRE, ECMAScript y Python. Puede aumentar el límite de tiempo de espera haciendo clic en la llave en la esquina superior derecha si es necesario. Incluya el probador que elija en su respuesta.
Si no hay un probador adecuado disponible para su gusto, también puede usar un intérprete en línea como ideone y escribir un pequeño guión en el idioma anfitrión que las personas pueden usar para probar su presentación.
- Puede usar cualquier función de ese sabor, que no invoque directamente el idioma del host (como las funciones de evaluación de código de Perl).
- Del mismo modo, puede usar cualquier modificador (si su sabor los tiene), a menos que resulten en una evaluación del código.
- Su expresión regular debe aceptar al menos una cadena S y rechazar al menos una cadena T , cada una de las cuales tiene al menos 16 y no más de 256 caracteres de longitud, en un período de tiempo razonable (no significativamente más de un minuto). S y T pueden contener caracteres Unicode que no son ASCII, siempre que haya una forma de ingresarlos en el probador en línea. Cualquier par de cadenas de este tipo será clave para su envío.
- Su expresión regular puede tomar arbitrariamente mucho tiempo en cualquier otra entrada.
El núcleo del desafío es crear una expresión regular cuya clave sea difícil de encontrar. Es decir, debería ser difícil saber con qué cadena no coincide o con qué cadena coincide (o potencialmente incluso ambas si la expresión regular tarda días en completarse excepto las cadenas de la tecla).
El desafío de los ladrones
Se alienta a todos los usuarios, incluidos aquellos que han enviado sus propias expresiones regulares, a "descifrar" otras presentaciones. Un envío se agrieta cuando una de sus claves se publica en la sección de comentarios asociados.
Importante: asegúrese de que ambas cadenas que publique tengan entre 16 y 256 caracteres inclusive, incluso si se pudiera usar casi cualquier cadena para una parte de la clave.
Si un envío persiste durante 72 horas sin ser modificado o agrietado, el autor puede revelar una clave válida editándola en una etiqueta de spoiler en su respuesta. Esto hará que su respuesta sea "segura", es decir, ya no se puede descifrar.
Solo se permite un intento de craqueo por envío por usuario. Por ejemplo, si envío al usuario X: "Su clave es 0123456789abcdef
/ fedcba9876543210
". y me equivoco, el usuario X rechazará mi suposición como incorrecta y ya no podré enviar conjeturas adicionales para ese envío, pero aún puedo descifrar otros envíos (y otros aún pueden descifrar ese envío).
Los envíos craqueados se eliminan de la contienda (siempre que no sean "seguros"). No deben ser editados o eliminados. Si un autor desea enviar una nueva expresión regular, debe hacerlo en una respuesta por separado.
¡No rompas tu propia sumisión!
Nota: Para cadenas largas en los comentarios sin espacios, SE inserta saltos de línea manuales en forma de dos caracteres Unicode. Por lo tanto, si publica una clave en backticks que es tan larga que se ajusta entre caracteres que no son espacios, no será posible copiar la clave directamente en un probador de expresiones regulares. En este caso, proporcione un enlace permanente al probador de expresiones regulares correspondiente con la expresión regular del policía y su clave; la mayoría de los probadores incluyen esta función.
Puntuación
El puntaje de un policía será el tamaño de su expresión regular en bytes (el patrón más los modificadores, los delimitadores potenciales no se cuentan), siempre que no haya sido descifrado. Ganará el puntaje más bajo de una presentación "segura".
El puntaje de un ladrón será la cantidad de envíos que descifraron. En caso de empate, el tamaño total de bytes de los envíos que descifraron se usará como un desempate. Aquí, el conteo de bytes más alto gana.
Como se indicó anteriormente, cualquier policía puede participar como ladrón y viceversa.
Mantendré tablas de clasificación separadas para las dos partes del desafío.
Tablas de clasificación
Última actualización: 19/10/2014, 20:33 UTC
Policías:
Los envíos en cursiva aún no son seguros.
- nneonneo , 841 bytes
- Wumpus Q. Wumbley , 10,602 bytes
- Sp3000 , 52,506 bytes
- user23013 , 53,884 bytes
- nneonneo , 656.813 bytes
Ladrones:
- user23013 , Agrietado: 11, Tamaño Total: 733 + 30 + 2.447 + 71 + 109 + 121 + 97 + 60 + 141 + 200,127 + 7,563 = 211,499 bytes
- nneonneo , Agrietado: 10, Tamaño total: 4,842 + 12,371 + 150 + 3,571 + 96 + 168 + 395 + 1,043 + 458 + 17,372 = 40,466 bytes
- Wumpus Q. Wumbley , Agrietado: 6, Tamaño total: 22 + 24 + 158 + 32 + 145,245 + 145,475 = 290,956 bytes
- Dennis , Agrietado: 2, Tamaño total: 70 + 73 = 143 bytes
- harius , Cracked: 1, Tamaño total: 9,998 bytes
- g.rocket , Agrietado: 1, Tamaño total: 721 bytes
- stokastic , Cracked: 1, Tamaño total: 211 bytes
- Sp3000 , Agrietado: 1, Tamaño total: 133 bytes
- TwiNight , Cracked: 1, Tamaño total: 39 bytes