Inspirado por esta pregunta de desbordamiento de pila .
El reto
Entrada
Una matriz de matrices cuadradas que contienen enteros no negativos.
Salida
Una matriz cuadrada construida a partir de las matrices de entrada de la siguiente manera.
Sea el tamaño de cada matriz de entrada y el número de matrices de entrada.
Para mayor claridad, considere el siguiente ejemplo de matrices de entrada ( , ):
3 5
4 10
6 8
12 11
2 0
9 1
- Comience con la primera matriz de entrada.
- Desplace la segunda matriz de entrada N −1 pasos hacia abajo y N −1 pasos hacia la derecha, de modo que su entrada superior izquierda coincida con la entrada inferior derecha de la anterior.
Imagine la segunda matriz desplazada como si estuviera apilada encima de la primera. Suma los dos valores en la entrada coincidente. Escriba los otros valores y complete las entradas restantes con
0
para obtener una matriz . Con la entrada de ejemplo, el resultado hasta ahora es3 5 0 4 16 8 0 12 11
Para cada matriz de entrada restante, escalónela de modo que su parte superior izquierda coincida con la parte inferior derecha de la matriz de resultados acumulada hasta el momento. En el ejemplo, incluir la tercera matriz de entrada da
3 5 0 0 4 16 8 0 0 12 13 0 0 0 9 1
La salida es la matriz obtenida después de incluir la última matriz de entrada.
Reglas y aclaraciones adicionales
- y son enteros positivos.
- Opcionalmente, puede tomar y como entradas adicionales.
- La entrada y la salida se pueden tomar por cualquier medio razonable . Su formato es flexible como siempre.
- Se permiten programas o funciones, en cualquier lenguaje de programación . Las lagunas estándar están prohibidas .
- El código más corto en bytes gana.
Casos de prueba:
En cada caso, las matrices de entrada se muestran primero, luego la salida.
, :
3 5 4 10 6 8 12 11 2 0 9 1 3 5 0 0 4 16 8 0 0 12 13 0 0 0 9 1
, :
3 5 4 10 3 5 4 10
, :
4 7 23 5 39
, :
11 11 8 6 8 12 11 0 4 4 1 13 9 19 11 13 4 2 11 11 8 0 0 6 8 12 0 0 11 0 8 1 13 0 0 9 19 11 0 0 13 4 2
P = 4 , :
14 13 10 0 13 20 21 3 9 22 0 8 17 3 19 16 14 13 0 0 0 10 13 20 0 0 0 21 12 22 0 0 0 0 25 3 0 0 0 19 16
fuente
Respuestas:
Jalea ,
1512 bytesPruébalo en línea!
Cómo funciona
fuente
R ,
8881 bytesPruébalo en línea!
Toma una
list
de las matrices,A
,N
, yP
.Construye la matriz de ceros requerida
o
y agrega elementos a los contenidos deA
las submatrices apropiadas eno
.fuente
JavaScript (ES6), 102 bytes
Toma entrada como
(n,p,a)
.Pruébalo en línea!
¿Cómo?
donde las celdas indefinidas se reemplazan con ceros.
fuente
Python 2 , 124 bytes
Pruébalo en línea!
fuente
Jalea , 12 bytes
Pruébalo en línea!
12 bytes
Si se permitieron ceros adicionales,
ZŻ€‘ɼ¡)⁺S
es una solución genial de 9 bytes. TIO .fuente
Jalea , 20 bytes
Pruébalo en línea!
Bah, Jelly tiene una actitud hoy ...
fuente
Pip , 37 bytes
Una función que toma una lista de listas de listas. Pruébalo en línea!
fuente
Python 2 , 124 bytes
Pruébalo en línea!
fuente
Carbón , 52 bytes
Pruébalo en línea! El enlace es a una versión detallada del código e incluye dos bytes para un formato algo utilizable. Comencé con una versión que acolchaba todas las matrices y luego las resumí, pero pude jugar golf para que esta versión fuera más corta. Explicación:
Verifique que ninguno de los índices esté fuera de rango.
Desplazamiento en la entrada original para obtener el valor deseado.
fuente