Esse desafio é muito simples. Você recebe como entrada uma matriz quadrada, representada de qualquer maneira sã, e você deve produzir o produto escalar das diagonais da matriz.
As diagonais em específico são as diagonais que vão do canto superior esquerdo para o canto inferior direito e do canto superior direito para o canto inferior esquerdo.
Casos de teste
[[-1, 1], [-2, 1]] -> -3
[[824, -65], [-814, -741]] -> 549614
[[-1, -8, 4], [4, 0, -5], [-3, 5, 2]] -> -10
[[0, -1, 0], [1, 0, 2], [1, 0, 1]] -> 1
code-golf
math
matrix
linear-algebra
Maltysen
fonte
fonte
[:+/(<0 1)|:(*|."1)
é 19 bytesJulia, 25 bytes
Experimente online!
fonte
rot90
, boa ideia!JavaScript (ES6), 45 bytes
fonte
R, 26 bytes
fonte
Mathematica, 17 bytes
fonte
APL (Dyalog) ,
159 bytesExperimente online!
Como?
+/
- soma1 1⍉
- diagonal de⌽×⊢
- multiplicação por elementos da matriz com sua reversãofonte
Clojure, 57 bytes
fonte
Haskell ,
8048 bytesGostei mais da minha solução anterior, mas esta é muito mais curta (basicamente faz o mesmo que a solução Python):
Experimente online!
fonte
J, 18 bytes
Explicação:
fonte
05AB1E , 5 bytes
Experimente online ou verifique todos os casos de teste .
Explicação:
fonte