一、儲存矩陣用乙個二維陣列即可;
二、什麼是對稱矩陣:
設乙個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...