C++ 程序 检查 Involutory Matrix

C++ 程序 检查 Involutory Matrix

给定一个矩阵,任务是检查矩阵是否是 Involutory Matrix。

Involutory Matrix : 如果矩阵乘以自己返回单位矩阵,则称其为 Involutory Matrix。这是其自身的逆矩阵。如果 A * A = I ,则矩阵 A 被称为 Involutory Matrix,其中 I 是单位矩阵。

C++ 程序 检查 Involutory Matrix

例子:

输入 : mat[N ] [ N ] = { {1,0,0},

{0,-1,0},

{0,0,-1}}

输出 : Involutory Matrix

输入 : mat[N ] [ N ] = { {1,0,0},

{0,1,0},

{0,0,1}}

输出 : Involutory Matrix

// 实现 Involutory Matrix 的程序
#include <bits/stdc++.h>
#define N 3
using namespace std;
 
// 矩阵乘以自身的函数
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];
        }
    }
}
 
// 检查 Involutory Matrix 的函数
bool InvolutoryMatrix(int mat[N][N])
{
    int res[N][N];
 
    // 矩阵乘法函数调用
    multiply(mat, res);
 
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < N; j++) {
            if (i == j && res[i][j] != 1)
                return false;
            if (i != j && res[i][j] != 0)
                return false;
        }
    }
    return true;
}
 
// 主函数
int main()
{
    int mat[N][N] = { { 1, 0, 0 },
                      { 0, -1, 0 },
                      { 0, 0, -1 } };
 
    // 调用函数。如果函数返回 true,则执行 if 部分,否则执行 else 部分
    if (InvolutoryMatrix(mat))
        cout << "Involutory Matrix";
    else
        cout << "Not Involutory Matrix";
 
    return 0;
}  

输出 :

Involutory Matrix

时间复杂度: O(N 3 )

辅助空间 : O(N 2 )

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 示例