Programa C para encontrar normal y traza de array

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.

Normal and Trace of Matrix

 

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;
}
Producción

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *