Dominância diagonal
Uma matriz quadrada (com o mesmo número de linhas e colunas) é chamada de estritamente diagonal dominante por linhas se “o valor absoluto de cada elemento da diagonal principal for estritamente maior que a soma dos valores absolutos dos outros elementos da mesma linha”.
Para ilustrar...
[
[10, 3, 6],
[2, -9, -6],
[1, -1, 4]
]Os valores absolutos do canto superior esquerdo ao canto inferior direito são:
10= Primeiro elemento da primeira linha.9= Segundo elemento da segunda linha.4= Terceiro elemento da terceira linha.
... resultando em um total de 23 para a diagonal.
Na primeira linha...
- O valor absoluto do elemento diagonal é
10. - Os valores absolutos dos outros elementos são
3e6, cuja soma é9.
... portanto, até aqui, a matriz é estritamente diagonal dominante por linhas, pois 10 > 9.
Na segunda linha...
- O valor absoluto do elemento diagonal é
9. - Os valores absolutos dos outros elementos da segunda linha são
2e6, cuja soma é8.
... portanto, a segunda linha é estritamente diagonal dominante, pois 9 > 8.
Se o primeiro valor fora da diagonal nessa linha mudar de 2 para 3, a soma dos outros valores absolutos será 9, então a dominância estrita não será satisfeita:
[
[10, 3, 6],
[3, -9, -6],
[1, -1, 4]
]Para que uma matriz quadrada seja estritamente diagonal dominante por linhas, todas as suas linhas devem satisfazer a mesma condição que a linha 1.
Escreva uma função que determine se uma matriz quadrada fornecida é estritamente diagonal dominante por linhas.
Exemplos
Program.diagDom(new int[][]{new int[]{2, -1}, new int[]{-1, 2}}) ➞ true
Program.diagDom(new int[][]{new int[]{0, 1}, new int[]{1, 0}}) ➞ false
Program.diagDom(new int[][]{new int[]{10, 3, 6}, new int[]{2, -9, -6}, new int[]{1, -1, 4}}) ➞ true
Program.diagDom(new int[][]{new int[]{10, 3, 6}, new int[]{3, -9, -6}, new int[]{1, -1, 4}}) ➞ falseNotas
Como mostrado nos exemplos, o tamanho das matrizes variará, mas elas sempre serão quadradas.