Notez que ce défi ne nécessite aucune manipulation ou compréhension des nombres complexes.
Étant donné une matrice carrée non vide où chaque élément est une liste entière à deux éléments (Re, Im), déterminez (en donnant toutes les valeurs véridiques / fausses ou deux valeurs cohérentes) si cela représente une matrice hermitienne.
Notez que l'entrée est un tableau 3D d'entiers; pas un tableau 2D de nombres complexes. Si votre langue ne peut pas prendre directement un tableau 3D, vous pouvez prendre une liste plate (et la forme n × n ou n × n × 2 si cela vous aide).
Une matrice est hermitienne si elle est égale à sa propre transposition conjuguée . En d'autres termes, si vous le retournez sur sa diagonale en haut à gauche à en bas à droite et annulez le deuxième élément de toutes les listes de feuilles à deux éléments, il est identique à la matrice d'entrée. Notez que l'ordre de retournement et de négation n'est pas pertinent, vous pouvez donc annuler d'abord et retourner ensuite.
Exemple pratique
Cet exemple utilise JSON avec un espace blanc superflu pour faciliter la lecture:
[[ [2, 0] , [2, 1] , [4, 0] ],
[ [2,-1] , [3, 0] , [0, 1] ],
[ [4, 0] , [0,-1] , [1, 0] ]]
Transposer (inverser la diagonale NW — SE):
[[ [2, 0] , [2,-1] , [4, 0] ],
[ [2, 1] , [3, 0] , [0,-1] ],
[ [4, 0] , [0, 1] , [1, 0] ]]
Nier les deuxièmes éléments des listes de feuilles:
[[ [2, 0] , [2, 1] , [4, 0] ],
[ [2,-1] , [3, 0] , [0, 1] ],
[ [4, 0] , [0,-1] , [1, 0] ]]
Comme c'est identique à l'entrée, la matrice est hermitienne.
Cas de test
Hermitien
[[[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]]]
Non hermitien
[[[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]]]