Su desafío hoy es tomar una matriz, dividirla en trozos y agregar esos trozos.
Así es como funciona: su programa o función recibirá una variedad de enteros a
y un tamaño de fragmento L
. La matriz debe dividirse en matrices de tamaño L
, si la longitud de la matriz no es divisible para L
entonces, la matriz debe tener 0 añadidos para que sea divisible de manera uniforme. Una vez que la matriz está fragmentada, todas las fragmentaciones deben agregarse juntas por elementos. La matriz resultante se emite a continuación.
Puede suponer que L
es mayor que 0, y eso a
no es vacío. No se puede suponer que a
los contenidos son positivos.
Aquí hay un ejemplo:
[1,2,3,4,5,6,7,8], 3 => [1,2,3]+[4,5,6]+[7,8,0] => [1+4+7,2+5+8,3+6+0] => [12,15,9]
Casos de prueba:
Array Length Output
[1] 1 [1]
[1] 3 [1,0,0]
[0] 3 [0,0,0]
[1,2] 3 [1,2,0]
[1,2] 1 [3]
[-1,1] 2 [-1,1]
[-7,4,-12,1,5,-3,12,0,14,-2] 4 [12,-1,0,1]
[1,2,3,4,5,6,7,8,9] 3 [12,15,18]
Este es el código de golf , ¡la menor cantidad de bytes gana!
Respuestas:
MATL , 4 bytes
Pruébalo en línea!
¡El primer bit de código MATL que he escrito! Toma dos entradas,
a
como un vector de fila (separadas por comas) yl
como un número. Funciona para serfuente
Python 3 ,
676542 bytesUtiliza el hecho de que la suma de una matriz vacía es 0
Pruébalo en línea!
fuente
Jalea ,
76 bytes1 byte gracias a Dennis.
Pruébalo en línea!
fuente
Ż¡sS
(equivalente a0;$¡sS
).Java 7, 86 bytes
Sin pliegues ni matrices elegantes, solo un buen
for
bucle antiguo :)Pruébalo en Ideone
Forrado:
fuente
Python 2 , 49 bytes
Pruébalo en línea!
fuente
JavaScript (ES6), 51 bytes
Toma de entrada en la sintaxis currificación:
f([1,2])(3)
.Casos de prueba
Mostrar fragmento de código
fuente
(a,n,o=[])=>a.map((v,i)=>o[i%n]=~~o[i%n]+v)&&o
a=>n=>a.map((v,i)=>o[i%=n]=~~o[i]+v,o=[])&&o
pero no agrega el relleno de cero requerido.f=
debería ser parte de tu recuento de personajes.f=
no es necesario. Aquí hay una publicación en meta sobre esto.Mathematica, 27 bytes
Mathematica casi tiene un generador para estoPruébalo en Wolfram Sandbox
Uso
Explicación
fuente
Mathematica, 58 bytes
Entrada
Salida
fuente
Perl 6 , 36 bytes
Pruébalo
Expandido:
fuente
APL (Dyalog) , 22 bytes
Toma
l
como argumento izquierdo ya
un argumento derecho.Pruébalo en línea!
{
...}
función anónima, donde⍺
es el argumento de la izquierda (l
) y⍵
el argumento de la derecha (a
).≢⍵
cuenta (longitud) dea
⍺÷⍨
dividido porl
⌈
techo (redondeado)⍺,⍨
adjuntarl
s←
almacenar ens
(para s hape)×/
producto de eso (es decir, cuántos enteros se necesitan)⍵↑⍨
tomar tantos enteros dea
(relleno con ceros)s⍴
r forma para dar formas
(filas, columnas)+⌿
sumas en columnasfuente
Haskell ,
5949 bytesPruébalo en línea!
fuente
Perl 6 , 40 bytes
Pruébalo en línea!
Si te gusta el número 42, se puede intercambiar la
*
de una∞
. Eso lo hará 42 bytes :—).Explicacion :
La magia detrás de la última "suma" es que el operador es un "reducir con zip con +". Por cierto, esto se rompería si lo usáramos solo en una lista con 1 lista dentro, pero eso nunca sucede si la lista original no está vacía (debido a la penúltima fila). También tenga en cuenta que terminamos tomando no solo
@a
, sino también@a * $l
artículos. Afortunadamente, agregamos solo ceros que no afectarán el resultado final.fuente
Casco , 9 bytes
Pruébalo en línea!
Explicación
fuente
Pyth , 8 bytes
Pruébalo aquí!
Pyth , 10 bytes
Pruébalo aquí!
Explicación
Explicación # 1
Explicación # 2
fuente
sM.TcEQ
[1], 3
, lo que daría en[1]
lugar de[1, 0, 0]
.J ,
1512 bytesPruébalo en línea!
Explicación
fuente
[:+/-@[[\]
:?05AB1E , 8 bytes
Pruébalo en línea!
fuente
05AB1E , 8 bytes
Pruébalo en línea!
fuente
¹
vs²
)SOGL V0.12 , 14 bytes
Pruébalo aquí! o Pruebe todos los casos de prueba. esto se escribe como una función sin nombre y se espera
chunk length; array
en la pila.Explicación:
fuente
F
Para qué sirve el código Pruébalo aquí que vinculaste?f=a=>a+2
laf=
parte no se cuenta, en SOGLF\n
no se cuenta.05AB1E , 12 bytes
Pruébalo en línea!
Explicación
fuente
Mathematica, 43 bytes
fuente
Clojure , 42 bytes
Pruébalo en línea!
fuente
R ,
6257 bytes-5 bytes gracias al usuario2390246
Pruébalo en línea!
Actualizado ya que ya no tiene que manejar el caso vacío
rellena
a
con ceros, construye una matriz del
filas y calcula y devuelve las sumas de filas.fuente
Apilado , 24 bytes
Pruébalo en línea!
Explicación
fuente
Java (OpenJDK 8) , 64 bytes
Pruébalo en línea!
fuente
Japt , 7 bytes
¡Hombre, luché con el método Japt incorrecto durante demasiado tiempo tratando de que funcione para el
[1], 3
caso de prueba en una cantidad razonable de bytes!Intentalo
Explicación
Entrada implícita de matriz
U
y enteroV
.Generar una matriz de enteros de
0
aV-1
y pasar cada uno a través de una función conX
ser el elemento actual.Agarra cada
V
elemento deU
, comenzando en el índiceX
.Reduzca esa matriz por adición.
fuente
C, (GCC)
10186 BytesPruébalo en línea!
Uso
Tenga en cuenta que debe pasar la longitud de la (s) matriz (s) y una nueva matriz dinámica en el montón (m).
fuente
PowerShell , 62 bytes
Pruébalo en línea!
Tomamos input
$a
rray y$l
ength. Luego pase de1
a$l
. Cada iteración establecemos que helper$y
sea uno menos que el número actual (esto se debe a que PowerShell 0-indexa pero la$l
profundidad está en 1-indexing). Luego establecemos nuestro$o
rendimiento0
y hacemos un bucle nuevamente$l
. Cada iteración interna simplemente la estamos acumulando en$o
el$a
elemento de matriz adecuadamente indexado . Esto aprovecha el hecho de que la indexación más allá del final de la matriz devuelve$null
y0 + $null = 0
.Una vez que se realiza el bucle interno, salimos
$o
y pasamos al siguiente fragmento. Las diversas salidas se dejan en la tubería y la salida a través implícitoWrite-Output
ocurre al finalizar el programa.fuente
Perl 5 , 44 + 1 (-a) = 45 bytes
Pruébalo en línea!
Editar: se corrigió el caso donde la longitud solicitada era menor que la matriz de entrada
fuente
Casco , 10 bytes
Pruébalo en línea!
Ungolfed / Explicación
fuente
Scala 2.12.2 , 80 bytes
Es un poco más corto que la solución Java.
fuente