在 C++ 中判断给定矩阵是否为托普利兹矩阵
在这个问题中,我们给定一个大小为 n*n 的二维方阵 mat[][]。我们的任务是判断给定的矩阵是否为托普利兹矩阵。
托普利兹矩阵也称为对角常数矩阵,是指其对角线上的元素从左上到右下都相等的矩阵。
让我们举个例子来理解这个问题,
输入
Mat[][] = {{3, 5, 1},
{4, 3 ,2},
{1, 2, 3}}
输出:是
解释:
对角线:(0, 0), (1, 1) , (2, 2) 的值都为 3。
解决方案:
解决这个问题的一个简单方法是检查所有对角线索引上的元素。这些对角线值将是 i 和 j 值相同的索引。
因此,我们需要检查所有 i -> 0 到 n 和 j -> 0 到 n。如果 i = j,并且 mat[i][j] 对所有值都相同。
程序来说明我们解决方案的工作原理,
示例
#include <iostream>
using namespace std;
#define N 4
bool isToeplizMatrix(int mat[N][N])
{
int diagVal = mat[0][0];
for(int i = 0; i < N ; i++)
{
if(mat[i][i] != diagVal){
return false;
}
}
return true;
}
int main(){
int mat[N][N] = { { 6, 7, 8, 9 },
{ 4, 6, 7, 8 },
{ 1, 4, 6, 7 },
{ 0, 1, 4, 6 }};
if (isToeplizMatrix(mat))
cout<<"Matrix is a Toepliz matrix.";
else
cout<<"Matrix is not a Toepliz matrix.";
return 0;
}输出
Matrix is a Toepliz matrix.
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP