sfondo
Il delta di una matrice di numeri interi è la matrice formata ottenendo le differenze di elementi consecutivi. Ad esempio, [1, 2, 4, 7, 3, 9, 6]
ha le seguenti delta: [1, 2, 3, -4, 6, -3]
.
Definiremo ora i delta di una matrice di numeri interi come i delta di ogni riga e di ogni colonna che contiene.
Come esempio:
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]
Il che ci dà il seguente elenco di delta di matrici:
[[1, 1, 1], [1, 1, 1], [-6, 7, -6], [3, 3], [3, -4], [3, 2], [3, -5]]
E poiché non vogliamo che vengano nidificati, appiattiamo tale elenco:
[1, 1, 1, 1, 1, 1, -6, 7, -6, 3, 3, 3, -4, 3, 2, 3, -5]
Compito
Il tuo compito è quello di sommare tutti i delta di una matrice fornita come input. Si noti che la matrice sarà composta solo da numeri interi non negativi.
Regole
Si applicano tutte le regole standard.
Puoi supporre che la matrice contenga almeno due valori su ogni riga e colonna, quindi la dimensione minima sarà 2x2 .
Puoi prendere la matrice in qualsiasi formato ragionevole, purché lo specifichi.
Non puoi presumere che la matrice sia quadrata.
Se potrebbe aiutare a ridurre il numero di byte, si può opzionalmente prendere il numero di righe e il numero di colonne come input così (Guardando a voi C!).
Questo è code-golf, quindi vince il codice più breve (in byte), in ogni lingua !
Casi test
Input => Output [[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
ṁ
.