Este desafío fue originalmente protegido por Magic Octopus Urn; Lo adopté y lo publiqué con su permiso.
Este es el hilo conductor de la policía. El hilo de los ladrones está aquí .
El reto
- Paso uno: escriba un fragmento de código (función o programa completo) que verifique la originalidad .
- Paso dos: elimine partes de su código reemplazando los caracteres con el símbolo
█
. - Paso tres: Publique el código redactado en el hilo de la policía.
- Paso cuatro: espere a que se descifre su código e intente descifrar el código de otros.
Por ejemplo, el código Groovy {it.isPrime()}
podría convertirse {██.is█████()}
. (Este sería estúpidamente fácil de descifrar; además, lo sé, .isPrime()
no es un método maravilloso).
Puntuación
Debe incluir el puntaje de su programa en su envío. La puntuación se define como la relación de caracteres redactados a caracteres. Entonces, si su programa tenía 20 caracteres y 5 fueron redactados, su puntaje sería 0.25. El código Groovy anterior tendría una puntuación de 0.5.
Reglas
- Su programa solo necesita manejar enteros positivos. Debería generar un valor verdadero si el número es primo y un valor falso de lo contrario. Por favor, especifique en su respuesta lo que genera.
- Su código no puede contener comentarios o espacios en blanco innecesarios.
- Sin hashing u ofuscación criptográfica.
- Su código no puede ser más del 50% redactado (se deben mostrar al menos la mitad de los caracteres). Esto significa que la puntuación más alta posible es 0.5.
- Si su respuesta no se descifra dentro de una semana, puede marcarla como segura y editarla en el crack previsto.
Victorioso
El ganador será la respuesta sin descifrar con la puntuación más baja dentro de las dos semanas posteriores a la publicación. En caso de empate, el que tenga más votos ganará. Este hilo siempre está abierto a más presentaciones, pero el ganador elegido después de dos semanas será permanente.
n >= 1
o todos los enteros?)Respuestas:
Functoid , puntaje = 14/223 ≈ 0.062780 [seguro]
Toma la entrada como argumento de línea de comandos y las salidas
True
(prime) oFalse
, ¡ pruébelo en línea!Sugerencia (agregada 4 días después de la publicación):
Solución
Pruébalo en línea!
Explicación
Debido a la aleatoriedad que proviene
?
, no es posible aplanar el programa. Aquí está el programa plano con un signo de interrogación donde será una expresión aleatoria:Programa completo:
El
{trial_division}
:{recursive_call}
, tomando argumentosf
(autorreferencia)x
yy
(la nota0
es la misma queFalse
){divides}
es?(yg(KZ)(C(C(BB(BS(b(C(BBI)I))))(C(BC(b(C(BBI)I)))I))(C-)))
donde?
se elige aleatoriamente (dependiendo de la dirección aleatoria) de:Y
S(CBO)(CBO)
S(SB(KO))(BBSBKO)
Todos estos son equivalentes entre sí, por lo que se
{divides}
convierte en el punto de fijación de:{recursive_call}
es una expresión bastante ofuscada que básicamente solof x (y-x)
fuente
8086 DOS COM, 87 bytes, puntaje 19/87 ~ = 0.2183
Agrietado por NieDzejkob
Este es un programa COM; espera número como argumento de línea de comando, salidas Y o N. Límite: 65535 porque el procesador de 16 bits (sizeof (int) sería 2). Newline es 0x0D 0x0A en esta plataforma. Sí, cuentas 20 █ en lugar de 19 █. Uno de ellos es un verdadero █ y no ha sido sustituido. Muhahaha
El espacio en la posición 10 es en realidad un byte NUL. El símbolo para NUL es el mismo que el espacio en la antigua fuente VGA.
fuente
╛üX
al principio esmov si, 0x5881
.Swift 4 , puntaje 26/170 ≈ 0.153, seguro
Pruébalo en línea!
Grieta prevista
Sin golf
fuente
brainfuck , 37/540 bytes (puntuación: 0.06851) ( Agrietado por Nitrodon)
Pruébalo en línea!
Imprime "cebar" si ceba, "no ceba" si es compuesto. Técnicamente funciona para enteros arbitrarios, pero se agota el tiempo de espera en TIO para números superiores a 6000
fuente
Mathematica, 97 bytes, puntaje 0.2989690722 ( Agrietado )
¡Instrumentos de cuerda! Regex! Primes?
No es una cosa tal como una comprobación de primalidad expresiones regulares, pero eso no es qué está sucediendo aquí.
Esto se ha resuelto , pero la forma en que pretendía era bastante diferente, por lo que aún no revelaré la solución prevista.
fuente
Jalea , puntaje 0. (142857) ( agrietado )
Pruébalo en línea!
Publicando mi otra respuesta, esta vez con algunos bytes más revelados para evitar trampas no intencionadas.
fuente
Octava , Puntuación: 0.15 (86 bytes)
Revelé varios personajes más. Pensé que el criterio ganador era el puntaje más alto, no el más bajo .
Pruébalo en línea!
Buena suerte =)
fuente
Python 3, 388 bytes, .155, Agrietado
Grieta de último minuto. Sí, esta es la prueba de Miller-Rabin.
Supongo que se permiten pruebas probabilísticas, incertidumbre 2 ^ -100
Bueno, una gran pista en la oración anterior
Realizó el valor de retorno 0 como COMPUESTO y 1 como PROBABLEMENTE PRIME
* 368> 388: se corrigió el problema cuando z <4
Solución:
fuente
"COMPOSITE"
viola el espíritu de la regla "Su código puede no contener comentarios o espacios en blanco innecesarios".095 , puntaje 0,20512820512 [Seguro]
Imprime 1 si es primo, 0 si es compuesto
Solución:
fuente
Nodo JavaScript, puntuación: 0.4
Aquí es donde funciona. Programa completo que toma la entrada del primer argumento de la línea de comando y sale a stdout.
Con suerte, una solución no tan difícil para comenzar esto.
Usando este fragmento para calcular la puntuación.
fuente
Jalea , puntaje 0. (142857)
Pruébalo en línea!
Toma un argumento de línea de comandos.
Falso =
0
Verdadero =
1
fuente
JavaScript, 103 bytes, puntuación 0.1923
x=>{if(x<4)return(!0);for(y=x>>>Math.log10(p=████;--y-1;(p=x/y%1)████if(██&&(███))break████return(███)}
Devuelve un booleano.
Crack involuntario
fuente
Javascript, puntaje 0.1894093686354379
Buena suerte. :pag
llame a f con la prima que desea verificar.
fuente
t
.> <>, puntaje 0.096, descifrado por Jo King
Grieta prevista:
fuente
v
un bucle infinito incondicional?Brain-Flak, Puntuación: 35/134 = 0.2612 ( ¡agrietado! )
(({████){██[████)█>(({}))<>}<>{}███{}((██({}))█████{}]██)({}(<>))<>{(({})){({}[()])<>}{}}{}<>([{}()]{})██[██()██(()█[()]██{}██}{}<>{})
Devuelve 1 para primo, 0 para compuesto.
Este es un lenguaje muy difícil para probar este desafío, ya que el formato es tan restringido que se requiere esfuerzo para no hacer obvio cuál es el carácter que falta.
Este es un lenguaje muy difícil para resolver este desafío, ya que es ridículamente difícil de leer.
fuente
Java 1.4+, 24/145 (0.16551724137)
Pruébalo en línea!
La forma más extraña que he visto para comprobar el cheque en Java con mucho, jajaja.
fuente
Japt, 19 bytes, 0.315789 ... puntaje, Seguro
No sé si oscurecí más de lo necesario, lo que me costó una mejor puntuación.
View solution (Explicación próximamente)
fuente
C, 34/76 = 0.447368, seguro
Tener tantos espacios en blanco significa que tendré muchas más probabilidades de obtener una grieta no deseada que la prevista.
Solución:
explicación:
fuente
METRO , puntaje: 22/4 = .1818 ..., descifrado por Dennis
Esto puede terminar con una grieta involuntaria, tendremos que ver.Lo hizo.Las soluciones de Dennis son
Pruébalo en línea!
Dejaré mi solución oculta para que alguien la descifre. Mi sugerencia a Dennis sobre su presentación de ladrón fue la palabra "zoológico".
fuente
C, 66 bytes, 29 redactados, puntaje 0.439
Solo una simple presentación en C; Veré cuánto tiempo lleva esto antes de publicar uno realmente malo.
fuente
Pyth , puntuación: ~ 0. (461538) (13 bytes) ( Agrietado )
¡Intenta descifrarlo aquí!
fuente
sh + coreutils, puntaje 19/143 ~ = 0.1328
agrietado
TIO
fuente
Brain-Flak , puntaje 29/140 = 0.207
({}██()██<>){██({}[()])██{}{}███({<({}[()])><>({})<>}{}██████{}██){(({})){({}[()])<>}{}}<>([{}()]{}<>{})<>}(<>██{}({}████)((){[()]██{}██}{})
Pruébalo en línea!
Salidas 1 para primo y 0 para no primo.
fuente
Tampio (imperativo), puntaje: 24/51 = 0.5
Esta es una solución obvia, espero que nadie entienda finlandés.
fuente
Tampio (imperativo), puntaje: 26/223 = 0.11659 ...
fuente
Pyt , puntuación: 0.288288 ... [Seguro]
Emite "Verdadero" si es primo, "Falso" si no
Olvidé mencionar que es una prueba probabilística.
Solución:
Esto implementa la prueba de primalidad Solovay-Strassen.
Pruébelo en línea aquí!
fuente
Rubí, 27/73 = 0.369863
Esto debería ser divertido.
fuente
Python 3 , puntaje: 0.386363, agrietado
Ir por la fruta realmente baja al principio. Encontraré una respuesta descarada pronto.
user71546 lo hizo "trabajar" con
... pero eso no fue intencionado. El código original era
Tampoco funciona para x <2. Ups
fuente
JavaScript (ES7), 297 bytes, 103 redactado, .347
Mi respuesta anterior de Python fue demasiado directa, así que aquí hay una malvada;)
Sin embargo, la lógica detrás es sencilla.
fuente