Antecedentes
Los deltas de una matriz de enteros son la matriz formada al obtener las diferencias de elementos consecutivos. Por ejemplo, [1, 2, 4, 7, 3, 9, 6]
tiene las siguientes deltas: [1, 2, 3, -4, 6, -3]
.
Ahora definiremos los deltas de una matriz de enteros como los deltas de cada fila y cada columna que contiene.
Como ejemplo:
Row deltas:
1 2 3 4 │ => [1, 1, 1]
4 5 6 7 │ => [1, 1, 1]
7 1 8 2 │ => [-6, 7, -6]
Column deltas (the matrix' columns have been rotated into rows for simplicity):
1 4 7 │ => [3, 3]
2 5 1 │ => [3, -4]
3 6 8 │ => [3, 2]
4 7 2 │ => [3, -5]
Lo que nos da la siguiente lista de deltas matriciales:
[[1, 1, 1], [1, 1, 1], [-6, 7, -6], [3, 3], [3, -4], [3, 2], [3, -5]]
Y como no queremos que estén anidados, aplanamos esa lista:
[1, 1, 1, 1, 1, 1, -6, 7, -6, 3, 3, 3, -4, 3, 2, 3, -5]
Tarea
Su tarea es sumar todos los deltas de una matriz dada como entrada. Tenga en cuenta que la matriz solo consistirá en enteros no negativos.
Reglas
Se aplican todas las reglas estándar.
Puede suponer que la matriz contiene al menos dos valores en cada fila y columna, por lo que el tamaño mínimo será 2x2 .
Puede tomar la matriz en cualquier formato razonable, siempre que la especifique.
No puede suponer que la matriz es cuadrada.
Si puede ayudarlo a reducir su recuento de bytes, también puede tomar el número de filas y el número de columnas como entrada (¡Mirándolo C!).
Este es el código de golf, por lo que gana el código más corto (en bytes) en cada idioma .
Casos de prueba
Entrada => Salida [[1, 2], [1, 2]] => 2 [[8, 7, 1], [4, 1, 3], [5, 5, 5]] => -9 [[1, 2, 3], [4, 5, 6], [7, 8, 9]] => 24 [[9, 9, 9, 9, 9], [9, 9, 9, 9, 9]] => 0 [[1, 3, 14], [56, 89, 20], [99, 99, 99]] => 256 [[1, 2, 3, 4], [4, 5, 6, 7], [7, 1, 8, 2]] => 9 [[13, 19, 478], [0, 12, 4], [45, 3, 6], [1, 2, 3]] => -72
ṁ
.