Le pedí a random.org 128 números enteros aleatorios entre 0 y 2 32 - 1. Como el generador de números aleatorios estaba tan ansioso por dar primero los primeros 64 números, obviamente son más aleatorios que los otros 64.
Escriba un programa o función completa que devuelva un resultado verdadero cuando se ingrese uno de los siguientes 64 enteros:
[1386551069, 1721125688, 871749537, 3410748801, 2935589455, 1885865030, 776296760, 614705581, 3841106923, 434616334, 1891651756, 1128215653, 256582433, 310780133, 3971028567, 2349690078, 489992769, 493183796, 3073937100, 3968540100, 777207799, 515453341, 487926468, 2597442171, 950819523, 1881247391, 3676486536, 3852572850, 3498953201, 2544525180, 297297258, 3783570310, 2485456860, 2866433205, 2638825384, 2405115019, 2734986756, 3237895121, 1560255677, 4228599165, 3106247743, 742719206, 2409129909, 3008020402, 328113612, 1081997633, 1583987616, 1029888552, 1375524867, 3913611859, 3488464791, 732377595, 431649729, 2105108903, 1454214821, 997975981, 1764756211, 2921737100, 754705833, 1823274447, 450215579, 976175934, 1991260870, 710069849]
Y un resultado falso para los otros 64 números:
[28051484, 408224582, 1157838297, 3470985950, 1310525292, 2739928315, 3565721638, 3568607641, 3857889210, 682782262, 2845913801, 2625196544, 1036650602, 3890793110, 4276552453, 2017874229, 3935199786, 1136100076, 2406566087, 496970764, 2945538435, 2830207175, 4028712507, 2557754740, 572724662, 2854602512, 736902285, 3612716287, 2528051536, 3801506272, 164986382, 1757334153, 979200654, 1377646057, 1003603763, 4217274922, 3804763169, 2502416106, 698611315, 3586620445, 2343814657, 3220493083, 3505829324, 4268209107, 1798630324, 1932820146, 2356679271, 1883645842, 2495921085, 2912113431, 1519642783, 924263219, 3506109843, 2916121049, 4060307069, 1470129930, 4014068841, 1755190161, 311339709, 473039620, 2530217749, 1297591604, 3269125607, 2834128510]
Cualquier entrada que no sea uno de estos 128 números es un comportamiento indefinido.
Si su solución se encuentra mediante programación, ¡también comparta el código utilizado para generarla!
Este es el código de golf , por lo que gana la solución más corta en bytes.
code-golf
number
random
classification
decision-problem
lirtosiast
fuente
fuente
"Maybe, not enough information."&
33 bytes, responde la pregunta.[4 20 79]
de[8 18 100]
puede hacerse mediante[99 79 20 17 7 4]
(vea si puede detectar el patrón). Claro, la mitad inicial de su respuesta podría usar un módulo mucho más pequeño que la entrada, pero la mitad posterior consiste en cambiar un elemento a la vez.Respuestas:
CJam,
535247 bytesNo se pueden imprimir, pero las dos cadenas se pueden obtener mediante
respectivamente. Esto también muestra que los puntos de código están por debajo de 256.
Esta es una respuesta de cadena de módulo, donde aplicamos los siguientes módulos al entero de entrada, en orden:
Como esta lista contiene enteros mayores que 255, la lista se codifica utilizando dos caracteres cada uno. La decodificación se realiza mediante
2/Dfb
, que divide la cadena en trozos de longitud dos y los convierte a partir de un número base 13 (p88*13 + 9 = 1153
. Ej .). Sin embargo, hay dos excepciones a la decodificación:136
) no está incluido (ver más abajo),242
) es menor que 256 y dividir una matriz de longitud impar en trozos de tamaño 2 dejará una matriz de tamaño 1 al final. ¡Gracias a @ MartinBüttner por este consejo!Una vez que los módulos han reducido el número entero de entrada a un número relativamente pequeño, realizamos una búsqueda desde una tabla. Esta tabla se codifica a través de la segunda cadena, que se convierte en un
312
número base y luego se decodifica en la base 2, que indexamos. Dado que la indexación de matriz de CJam se ajusta, podemos omitir el módulo final como se mencionó anteriormente.Pruébalo en línea | Banco de pruebas
fuente
Retina , 117 bytes
Una respuesta de golf regex, que genera un número entero positivo para verdadero y cero para falso
Pruébalo en línea! El | Conjunto de pruebas - veraz | Conjunto de pruebas - falso | Regex101
fuente
JavaScript (ES6) 233
Una función anónima que devuelve 0 como
falsy
y no cero comotruthy
Verificando los últimos 3 dígitos en la representación numérica en la base 36.
La cadena de verificación está construida así:
Prueba
fuente
Mathematica,
218217 bytesPor alguna razón, existe un conjunto de módulos que nos permite distinguir dos conjuntos solo por si, después de aplicar los módulos, el resultado es cero o no. La larga lista de módulos fue generada por este programa:
La primera salida son los módulos, la segunda y la tercera salidas son las dos listas, después de haber aplicado los módulos. Las dos largas listas son los conjuntos.
fuente
PowerShell, v3 + 194 bytes
Un enfoque un poco diferente, así que pensé que lo publicaría. No va a ganar el más corto, pero puede dar ideas a otras personas para acortar su código.
Todavía estamos tomando el entero de entrada
$args[0]
y aplicando operaciones de módulo, por lo que no hay nada diferente allí. En lo anterior, estamos utilizando el-in
operador (de ahí el requisito v3 +), por lo que esto generaráTrue
valores que están en el caso de prueba de verdad.Sin embargo, estoy tratando de encontrar matrices resultantes donde podamos aprovechar el
..
función de rango para acortar el recuento de bytes, pero todavía tengo matrices distintas entre los valores de verdadero y falso. Podemos hacer esto ya que el comportamiento que no sea la entrada de verdad / falsey no está definido, por lo que si el rango captura valores fuera de la entrada de verdad / falsey, no importa la salida.Hasta ahora, es un proceso bastante manual, ya que el objetivo es tratar de encontrar el módulo donde una de las matrices de verdad o falsey tiene grandes espacios entre los números y la otra matriz tiene grandes cantidades de números en esa brecha. La mayoría de las veces he estado yendo por intuición y por instinto hasta ahora, pero eventualmente podría escribir un forzador de brutas para resolver esto. Lo anterior es el más corto que he encontrado (principalmente manualmente) hasta ahora.
fuente