C++程序 检验幂等矩阵
给定N * N矩阵,任务是检查矩阵是否为幂等矩阵。
幂等矩阵: 如果矩阵乘以它自己返回相同的矩阵,则称为幂等矩阵。当且仅当矩阵M是幂等矩阵时,矩阵M称为幂等矩阵。 M * M = M . 在幂等矩阵中,M是一个方阵。
例子:
输入:mat[][] = {{3, -6},
{1, -2}};
输出:幂等矩阵
输入:mat[N][N]={{2, -2, -4},
{-1, 3, 4},
{1, -2, -3}}
输出:幂等矩阵。
// 检查给定矩阵是否为幂等矩阵的程序
# 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];
}
}
}
// 检查矩阵的幂等性的函数。
bool checkIdempotent(int mat[][N])
{
// 计算矩阵与其自身的乘积,并将其存储到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;
}
// 驱动程序。
int main()
{
int mat[N][N] = {{2, -2, -4},
{-1, 3, 4},
{1, -2, -3}};
// checkIdempotent函数调用。
if (checkIdempotent(mat))
cout << "幂等矩阵";
else
cout << "不幂等矩阵。";
return 0;
}
输出
幂等矩阵
时间复杂度: O(N 3 )
辅助空间 : O(N 2 )