在 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.

更新於: 2021-01-22

189 次瀏覽

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告