首先我們有乙個矩陣,如:,,
,,,這種行列數相同,且以對角線為中心對稱的矩陣稱為對稱矩陣
對稱矩陣因其特點,可以進行壓縮儲存(只存上半部或下半部)以達到節省空間的目的
需要矩陣時可以將其還原
下面給出對稱矩陣壓縮儲存的一種思路(儲存下半部分),使用c++模板實現:
.h:
template < class t, size_t n >
class symmetricmatrix
else}}
} t& access ( size_t i, size_t j )
return _matrix[ i * ( i + 1 ) / 2 + j ];//也是根據等差數列,得出i行前有多少個元素 + j即為此時元素
} const t & access ( size_t i, size_t j ) const
return _matrix[ i * ( i + 1 ) / 2 + j ];// i * (i + 1) / 2為前i行元素
} void display ( )
cout << endl;
}cout << endl;
} ~symmetricmatrix ( )
};
.cpp:
#include #include using namespace std;
#include "yy.h"
void test ( )
, ,
, ,
, };
symmetricmatrixsm( ( int * )a, 5 ); //構建物件
sm.display ( );
}int main ( )
c 實現對稱矩陣的壓縮儲存
c 實現對稱矩陣的壓縮儲存 ide為vs013.2.5.4.1symmetry.cpp 定義控制台應用程式的入口點。對稱矩陣裡的中任一元素在一維陣列中的下標k與i,j的對應關係為 當i j,k i i 1 2 j 當iusing namespace std const int n 5 int tma...
對稱矩陣 壓縮儲存
對稱矩陣及對稱矩陣的壓縮儲存 設乙個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.對...