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,2
lugar0,1,2
.fuente
(k<1)
con0**k
de -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
,1
en lugar de0
,1
,2
respectivamente.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ót
yA[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.True
para 0 (mixto)True.True
para 1 (todo impar)False.False
para 2 (todos pares)Pruébalo en línea!
Aquí hay una alternativa un poco más larga (49 bytes):
Este regresa:
1
para 0 (mixto)-1
para 1 (todo impar)0
para 2 (todos pares)Pruébalo en línea!
fuente
Rojo , 101 bytes
Pruébalo en línea!
Devuelve
1 0
para mixto,1
para impar y0
para parfuente
JavaScript (ES6), 46 bytes
Devuelve -1 (par), 1 (impar) y 0 (mixto).
Cómo funciona:
El
d
acumulador 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
+3
para-p
Salidas 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 bytestruetrue
lugar de2
para inclusofalsefalse
lugar de1
por impartruefalse
lugar de0
para mixtoExplicación:
Pruébalo en línea.
fuente
Clojure, 82 bytes
Un ejemplo completo con conversión de salida:
fuente