Se le da una matriz A de n enteros estrictamente positivos, con n ≥ 2 .
Su tarea es asignar cada entrada A i a:
- 1 si A j mod A i es impar para cada j tal que 1 ≤ j ≤ n y j ≠ i
- 2 si A j mod A i es incluso para cada j tal que 1 ≤ j ≤ n y j ≠ i
- 0 de lo contrario (paridades mixtas)
Ejemplo
Para A = [73, 50, 61] , tenemos:
- 50 mod 73 = 50 , 61 mod 73 = 61 → mixto
- 73 mod 50 = 23 , 61 mod 50 = 11 → todo impar
- 73 mod 61 = 12 , 50 mod 61 = 50 → todos pares
Por lo tanto, la salida esperada es [0, 1, 2] .
Reglas
- Puede usar tres valores distintos (de cualquier tipo) en lugar de 0 , 1 y 2 , siempre que sean consistentes. Especifique su mapeo si no está utilizando el descrito en el desafío.
- Si hubiera alguna duda al respecto, cero es par .
- Este es el código de golf , por lo que gana la respuesta más corta en bytes.
Casos de prueba
[ 1, 2 ] --> [ 2, 1 ]
[ 3, 4 ] --> [ 1, 1 ]
[ 1, 2, 3 ] --> [ 2, 1, 0 ]
[ 4, 4, 4 ] --> [ 2, 2, 2 ]
[ 73, 50, 61 ] --> [ 0, 1, 2 ]
[ 941, 459, 533 ] --> [ 1, 0, 0 ]
[ 817, 19, 928, 177 ] --> [ 1, 2, 1, 1 ]
[ 312, 463, 336, 729, 513 ] --> [ 0, 2, 0, 0, 0 ]
[ 53, 47, 33, 87, 81, 3, 17 ] --> [ 0, 0, 0, 1, 0, 2, 0 ]

[1],[0, 1]y[1, 1]el trabajo?Respuestas:
Python 2 ,
686766 bytes-1 byte gracias al Sr. Xcoder
-1 byte gracias a los ovs
Pruébalo en línea!
Devoluciones en su
1,0,2lugar0,1,2.fuente
(k<1)con0**kde -1 bytes.Jalea , 9 bytes
Devuelve [1, 1], [0, 1], [1] en lugar de 0, 1, 2 .
Pruébalo en línea!
Cómo funciona
fuente
‘ṬUḄconQ€Ḅpara guardar un byte?Q€podría regresar[0, 1]o[1, 0].[1],[1,1]y[0,1]son tres valores distintos, por lo que%þœ-€0Ḃ‘Ṭdebería ser aceptable para 9. EDITAR - ah, veo que hiciste esta pregunta exacta :)¹-Ƥ%"%2‘ṬMATL , 12 bytes
Este usos
0,-1,1en lugar de0,1,2respectivamente.Pruébalo en línea! O verificar todos los casos de prueba .
Explicación
fuente
C (gcc) ,
118114979291 bytescuatroveintiún bytes gracias a Peter Cordes ; sugiriendo usar una asignación de valor de salida diferente;[0 1 2] ~ [3 2 1].[0 1 2] ~ [ ].for(i=0;i<n;i++,putchar...afor(i=~0;++i<n;putchar....Pruébalo en línea!
fuente
f(I,7)sobrescribe el primer elemento deI[](A[]en f ()) con uno de los argumentos que está utilizando como locales.f()supone que la persona que llamó pasó el argumento en la pila, pero la persona que llama no lo sabía, y lo que está realmente en la pila encima de la dirección de retorno esA[0]. (es decir, este UB causótyA[0]tener la misma dirección). De todos modos, esto es solo UB en su función de prueba en TIO.execlp("/usr/bin/objdump", "objdump", "-drwC", "-Mintel", argv[0], 0);a main para obtener el asm del gcc 7.2.1 de TIO, que no coincidía exactamente con mi gcc 7.2.1 de Arch Linux. Después de convertir ese desensamblaje nuevamente en la fuente asm para la función de llamada, pude reprogramarlo localmente dentro de gdb y confirmar exactamente lo que estaba sucediendo.o|=1<<(A[j]%A[i]%2)sin necesidad de una decodificación eleganteo.o|=1<<...lugar de algo similaro|=1<<(t=....Mathematica,
574948 bytesEsto devuelve:
False.Truepara 0 (mixto)True.Truepara 1 (todo impar)False.Falsepara 2 (todos pares)Pruébalo en línea!
Aquí hay una alternativa un poco más larga (49 bytes):
Este regresa:
1para 0 (mixto)-1para 1 (todo impar)0para 2 (todos pares)Pruébalo en línea!
fuente
Rojo , 101 bytes
Pruébalo en línea!
Devuelve
1 0para mixto,1para impar y0para parfuente
JavaScript (ES6), 46 bytes
Devuelve -1 (par), 1 (impar) y 0 (mixto).
Cómo funciona:
El
dacumulador será:!a[d+1]== falso,!d== 1,false - 1== -1 )!a[d+1]== verdadero,!d== 0,true - 0== 1 )!a[d+1]== falso,!d== 0,false - 0== 0 )Casos de prueba:
Mostrar fragmento de código
fuente
J ,
2720 bytesPruébalo en línea!
Utiliza [1 0] [1] [0] en lugar de 0 1 2
Explicación:
|/~- hace una mesa con restos:2|¿par o impar? :<@~.@}:@\:"1- ordenar, soltar el último elemento (siempre un cero), mantener los elementos únicos y encuadrar cada fila:fuente
2/:~@:|"1]|1]\.]devolución de una lista de pares.Ruby ,
5856 bytesDevuelve [0, 1], [1], [0] en lugar de 0, 1, 2 (es decir, [0] para todos los pares, [1] para todos los impares y [0, 1] para mixtos).
Pruébalo en línea!
fuente
Perl, 38 bytes
Incluye
+3para-pSalidas 1 para todo par, 2 para todo impar, 3 para mixto
fuente
Limpio ,
956563 bytesPruébalo en línea!
Como lambda, tomando
[Int]y regresando[Int], asignando a:0: mezclado1: todo incluso-1: todo extrañofuente
Perl 5 ,
7169 + 1 (-a) = 70 bytesPruébalo en línea!
fuente
Pari / GP , 42 bytes
Devoluciones en
[0, 0], [0, 1], [1, 0]lugar de0, 1, 2.Pruébalo en línea!
fuente
Java 8,
9189 bytestruetruelugar de2para inclusofalsefalselugar de1por impartruefalselugar de0para mixtoExplicación:
Pruébalo en línea.
fuente
Clojure, 82 bytes
Un ejemplo completo con conversión de salida:
fuente