Aquí, veremos cómo escribir un programa en C para encontrar la normal y la traza de una array. A continuación se muestran los ejemplos:
Entrada: mat[][] = {{1, 2, 3},
{4, 5, 6},
{7, 8, 9}};
Producción:
- normales = 16
- Traza = 15
Explicación:
- Normal = sqrt(1*1+ 2*2 + 3*3 + 4*4 + 5*5 + 6*6 + 7*7 + 8*8 + 9*9) = 16
- Traza = 1+5+9 = 15
Entrada: mat[][] = {{5, 6, 1},
{7, 2, 9},
{6, 1, 3}};
Producción:
- normales = 10
- Traza = 10
Explicación:
- Normal = sqrt(5*5+ 6*6 + 1*1 + 7*7 + 2*2 + 9*9 + 6*6 + 1*1 + 3*3) = 15
- Rastro = 5+2+3 = 10
Para una mejor comprensión ver la siguiente imagen.
Acercarse:
1. Para encontrar lo normal:
- Ejecute bucle anidado para acceder a elementos de la array.
- Encuentre la suma de todos los elementos presentes en la array.
- Luego devuelva la raíz cuadrada de esa suma.
2. Para encontrar un rastro:
- Ejecute un solo bucle para acceder a los elementos diagonales de la array.
- Devuelve la suma de los elementos de la diagonal.
A continuación se muestra el programa en C para encontrar la normal y la traza de una array:
C
// C program to find trace // and normal of given matrix #include <math.h> #include <stdio.h> // Returns Normal of a matrix // of size n x n int findNormal(int mat[][3], int n) { int sum = 0; // Run nested loop to access // elements of matrix for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) sum += mat[i][j] * mat[i][j]; return sqrt(sum); } // Returns trace of a matrix of // size n x n int findTrace(int mat[][3], int n) { int sum = 0; // Run a loop to access diagonal // elements of matrix for (int i = 0; i < n; i++) sum += mat[i][i]; return sum; } // Driven code int main() { int mat[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; printf("Normal of Matrix = %d", findNormal(mat, 3)); printf("\nTrace of Matrix = %d", findTrace(mat, 3)); return 0; }
Normal of Matrix = 16 Trace of Matrix = 15
Complejidad de tiempo: O(n*n)
Complejidad de espacio: O(1)
Publicación traducida automáticamente
Artículo escrito por mukulsomukesh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA