Observe que esse desafio não requer manipulação ou entendimento de números complexos.
Dada uma matriz quadrada não vazia onde cada elemento é uma lista inteira de dois elementos (Re, Im), determine (fornecendo quaisquer valores de verdade / falsidade ou quaisquer dois valores consistentes) se isso representa uma matriz hermitiana.
Observe que a entrada é uma matriz 3D de números inteiros; não é uma matriz 2D de números complexos. Se o seu idioma não puder usar uma matriz 3D diretamente, você poderá fazer uma lista simples (e o formato n × n ou n × n × 2, se isso ajudar).
Uma matriz é hermitiana se igualar sua própria transposição de conjugado . Em outras palavras, se você girá-lo na diagonal superior esquerda para inferior direita e negar o segundo elemento de todas as listas de folhas de dois elementos, ele será idêntico à matriz de entrada. Observe que a ordem de virar e negar é irrelevante; portanto, você pode negar primeiro e virar depois.
Exemplo de passeio
Este exemplo usa JSON com espaço em branco supérfluo para facilitar a leitura:
[[ [2, 0] , [2, 1] , [4, 0] ],
[ [2,-1] , [3, 0] , [0, 1] ],
[ [4, 0] , [0,-1] , [1, 0] ]]
Transposição (vire na diagonal NW-SE):
[[ [2, 0] , [2,-1] , [4, 0] ],
[ [2, 1] , [3, 0] , [0,-1] ],
[ [4, 0] , [0, 1] , [1, 0] ]]
Negue os segundos elementos das listas:
[[ [2, 0] , [2, 1] , [4, 0] ],
[ [2,-1] , [3, 0] , [0, 1] ],
[ [4, 0] , [0,-1] , [1, 0] ]]
Como isso é idêntico à entrada, a matriz é hermitiana.
Casos de teste
Hermitian
[[[2,0],[2,1],[4,0]],[[2,-1],[3,0],[0,1]],[[4,0],[0,-1],[1,0]]]
[[[1,0],[2,0]],[[2,0],[1,0]]]
[[[1,0],[2,-3]],[[2,3],[1,0]]]
[[[42,0]]]
Não-eremita
[[[2,0],[2,1],[4,0]],[[2,-1],[3,0],[0,1]],[[4,0],[0,-1],[1,-1]]]
[[[0,1],[0,2]],[[0,2],[0,1]]]
[[[1,0],[2,3]],[[2,3],[1,0]]]
[[[3,2]]]