Introducción
Supongamos que tengo una lista de enteros, digamos L = [-1,2,2,1,2,7,1,4] . Me gusta tener equilibrio en mi vida, así que estoy feliz de ver que tiene tantos elementos extraños como elementos pares. Además, también tiene el mismo número de elementos en todas las clases de módulo de 3 que tiene elementos en:
[-1,2,2,1,2,7,1,4]
0 mod 3:
1 mod 3: 1 7 1 4
2 mod 3: -1 2 2 2
Lamentablemente, para las clases de módulo de 4 esto ya no es válido. En general, decimos que una lista no vacía es un módulo equilibrado N si tiene el mismo número de elementos en todas las clases de módulos de N para las cuales este número no es 0. La lista anterior L es un módulo equilibrado 2 y 3, pero un módulo no equilibrado 4)
La tarea
Su entrada es una lista no vacía L de enteros tomados en cualquier formato razonable. Su salida es la lista de esos enteros N ≥ 2, de modo que L está equilibrado módulo N , nuevamente en cualquier formato razonable. El orden de la salida no importa, pero no debe contener duplicados.
Se garantiza que solo hay un número finito de números en la salida, lo que significa precisamente que no todos los elementos de L aparecen en la misma cantidad de veces. Ejemplos de entradas inválidas son [3] , [1,2] y [0,4,4,0,3,3] . Observe que el número más grande en la salida es como máximo max (L) - min (L) .
El conteo de bytes más bajo en cada idioma gana, y se aplican las reglas estándar de código de golf .
Casos de prueba
[1,1,2] -> []
[1,1,5] -> [2,4]
[1,1,24] -> [23]
[1,2,3,2] -> [2]
[12,12,-4,20] -> [2,3,4,6,8,12,24]
[1,1,12,12,-3,7] -> [3,10]
[-1,2,2,1,2,7,1,4] -> [2,3]
[4,-17,-14,-18,-18,3,5,8] -> []
[-18,0,-6,20,-13,-13,-19,13] -> [2,4,19]
[-11,-19,-19,3,10,-17,13,7,-5,16,-20,20] -> []
[3,0,1,5,3,-6,-16,-20,10,-6,-11,11] -> [2,4]
[-18,-20,14,13,12,-3,14,6,7,-19,17,19] -> [2,3]
[-16,-9,6,13,0,-17,-5,1,-12,-4,-16,-4] -> [3,9]
[-97,-144,3,53,73,23,37,81,-104,41,-125,70,0,111,-88,-2,25,-112,54,-76,136,-39,-138,22,56,-137,-40,41,-141,-126] -> [2,3,6]
Respuestas:
05AB1E , 11 bytes
Pruébalo en línea!
fuente
Wolfram Language (Mathematica) ,
5652 bytesGracias a Not a tree por guardar 4 bytes.
Pruébalo en línea!
El principal truco de golf es usar la
suma de valores absolutos (o lasuma de1 norma)de valores al cuadrado, calculados como un producto puntual consigo mismo, como el límite superior en lugar deMax@#-Min@#
. De lo contrario, solo implementa la especificación muy literalmente.fuente
Perl 6 ,
5248 bytesPruébalo
Pruébalo
Expandido:
fuente
Haskell ,
8584 bytesPruébalo en línea! Utiliza la suma de valores absolutos como máximo de la respuesta de Martin Ender .
Editar: -1 byte gracias a Ørjan Johansen.
Explicación:
fuente
Casco , 13 bytes
Pruébalo en línea!
fuente
R ,
7572 bytesPruébalo en línea!
Se utiliza
table
para calcular los recuentos de cada módulo enterox
. La desviación estándarsd
de un conjunto de números es cero si todos son iguales, y positiva de lo contrario. Por!sd(table(L%%x))
lo tanto, esTRUE
dondeL
sea mod mod equilibradox
y falso de lo contrario. Estos valores se concatenan enF
.which
luego devuelve los índices de valores verdaderos de la función. Dado que R usa indexación basada en 1 eF
inicialmente es un vector de longitud uno con valorFALSE
, esto devolverá correctamente los valores que comienzan con2
.Uno podría esperar que la función incorporada
range
calcule el rango de un conjunto de datos , es decirmax(D)-min(D)
, pero lamentablemente calcula y devuelve el vectorc(min(D), max(D))
.fuente
Limpiar , 121 bytes
Utiliza el truco de la suma de los absolutos de la respuesta de Martin Ender.
Golfizado:
Legible:
Pruébalo en línea!
fuente
Jalea , 12 bytes
Pruébalo en línea!
Gracias a user202729 por guardar un byte y Martin Ender (indirectamente) por guardar un byte.
Cómo funciona
¡Se puede probar en línea una alternativa de una línea de 12 bytes !
fuente
AS
(S
um deA
bsolutes) también.ḟ0
no es necesario en el chat .Python 3,
120102 bytesNo es muy golfoso.
-18 bytes gracias al Sr. Xcoder .
Pruébalo en línea!
fuente
MATL , 19 bytes
-4 bytes gracias a Luis Mendo!
Pruébalo en línea!
Puerto de mi respuesta en R .
fuente
S5L)d
lugar deX>GX<-
y en8#u
lugar deFFFT#u
[1 0]
(pero sabía que era posible) así que5L
es útil, y yo*still* really need to go and properly read the docs for
# `:( ¡pero gracias!#
, especificar un número mayor que el número máximo de salidas solo selecciona salidas individuales. Con función,u
el máximo es4
, así5#u
esT#u
,6#u
esFT#u
etc.JavaScript (ES6), 117 bytes
Emite una lista de valores separados por espacios.
Casos de prueba
Mostrar fragmento de código
fuente
Clojure, 91 bytes
Usar
frequencies
no es ideal en el código de golf.fuente
J, 38 bytes
El crédito va al Sr. Xcoder por el truco de la suma de valores absolutos.
Edite en un enlace TIO si lo desea: he jugado golf con un poco de prisa.
Explicación y enlace TIO próximamente (ish).
fuente
APL (Dyalog) ,
43413830 bytesLa ⍨s en el código cuenta toda la historia.
8 bytes guardados gracias a @ Adám
Pruébalo en línea!
fuente
∊x⊆⍨1=⊂(≢∘∪1⊥|∘.=|)¨⍨x←1+∘⍳1⊥|