對稱矩陣的壓縮儲存 c 模板類實現

2021-07-28 23:14:41 字數 905 閱讀 1905

首先我們有乙個矩陣,如:,,

,,,這種行列數相同,且以對角線為中心對稱的矩陣稱為對稱矩陣

對稱矩陣因其特點,可以進行壓縮儲存(只存上半部或下半部)以達到節省空間的目的

需要矩陣時可以將其還原

下面給出對稱矩陣壓縮儲存的一種思路(儲存下半部分),使用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.對...