對稱矩陣的壓縮儲存講解

2022-10-03 23:54:17 字數 809 閱讀 1656

一、儲存矩陣用乙個二維陣列即可;

二、什麼是對稱矩陣:

設乙個n*n的方陣a,a中任意元素aij,當且僅當aij == aji(0 <= i <= n-1&& 0 <= j <= n-1),則矩陣a是對稱矩陣。以矩陣的對角線為分隔,分為上三角和下三角

三、對稱矩陣的壓縮儲存:

壓縮儲存稱矩陣儲存時只需要儲存上三角/下三角的資料,所以最多儲存n(n+1)/2個資料(相當於1+2+…+n,即等差數列求和)。

對稱矩陣和壓縮儲存的對應關係:下三角儲存i>=j,symmetricmatrix[i][j] ==array[i*(i+1)/2+j]

四、**實現

#include

using namespace std;

template

class compr程式設計客棧essionmatrix

else

break;}}

} //獲取某個座標的資料,i和j代表該資料在矩陣中的橫縱座標

t getdate(int i,int j)

else//上三角資料

} //列印矩陣的資料

void printfmatrix()

;測試**:

int main()

, ,,,

,};

compressionmatrix cm((int*)a,5);//將二維陣列強制轉換為一維陣列指標,是問題更簡單

cm.printfmatrix();

returwww.cppcns.comn 0;

}五、執行結果

o(∩_∩)o

總結

對稱矩陣 壓縮儲存

對稱矩陣及對稱矩陣的壓縮儲存 設乙個n n的方陣a,a中任意元素aij,當且僅當aij aji 0 i n 1 0 j n 1 則矩陣a是對稱矩陣。以矩陣的對角線為分隔,分為上三角和下三角。壓縮儲存稱矩陣儲存時只需要儲存上三角 下三角的資料,所以最多儲存n n 1 2個資料。對稱矩陣和壓縮儲存的對應...

對稱矩陣及對稱矩陣的壓縮儲存

1.對稱矩陣 設乙個n n的方陣a,a中任意元素aij,當且僅當aij aji 0 i n 1 0 j n 1 則矩陣a是對稱矩陣。以矩陣的對角線為分隔,分為上三角和下三角。2.壓縮儲存稱矩陣儲存時只需要儲存上三角 下三角的資料,所以最多儲存n n 1 2個資料 根據等差數列的前n項和可求得 3.對...

對稱矩陣的壓縮儲存

眾所周知,對稱矩陣的定義如下 設乙個n n的方陣a,a中任意元素aij,當且僅當aijj aji 0 i 壓縮儲存對稱矩陣時只需儲存上三角形或下三角形的資料即可,故最多可儲存n n 1 2個資料。以下 是以對稱矩陣的下三角形儲存 template class symmetricmatrix else...