Programa C++ para verificar la array idempotente

Dada una array N * N y la tarea es verificar si la array es una array idempotente o no.
Array idempotente: Se dice que una array es array idempotente si la array multiplicada por sí misma da como resultado la misma array. Se dice que la array M es array idempotente si y solo si M * M = M . En array idempotente M es una array cuadrada.
 

idempotent matrix

Ejemplos: 
 

Input : mat[][] = {{3, -6},
                   {1, -2}};
Output : Idempotent Matrix

Input : mat[N][N] = {{2, -2, -4},
                     {-1, 3, 4},
                     {1, -2, -3}}
Output : Idempotent Matrix.

C++

// Program to check given matrix 
// is idempotent matrix or not.
#include<bits/stdc++.h>
#define N 3
using namespace std;
  
// Function for matrix multiplication.
void multiply(int mat[][N], int res[][N])
{
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
        {
            res[i][j] = 0;
            for (int k = 0; k < N; k++)
                res[i][j] += mat[i][k] * mat[k][j];
        }
    }
}
  
// Function to check idempotent
// property of matrix.
bool checkIdempotent(int mat[][N])
{   
    // Calculate multiplication of matrix
    // with itself and store it into res.
    int res[N][N];
    multiply(mat, res);
  
    for (int i = 0; i < N; i++)    
        for (int j = 0; j < N; j++)        
            if (mat[i][j] != res[i][j])
                return false;
    return true;
}
  
// Driver function.
int main()
{
    int mat[N][N] = {{2, -2, -4},
                    {-1, 3, 4},
                    {1, -2, -3}};
      
    // checkIdempotent function call.
    if (checkIdempotent(mat))
        cout << "Idempotent Matrix";
    else
        cout << "Not Idempotent Matrix.";
    return 0;
}

Producción:

Idempotent Matrix

¡ Consulte el artículo completo sobre Programa para verificar la array idempotente para obtener más detalles!

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *