相关疑难解决方法(0)

将2D上三角和下三角中的元素映射到线性结构

我有一个NxN维的矩阵M,其中M(i,j)= M(j,i)

我想将此结构表示为(N²+ N)/ 2线性阵列K,以节省空间.我的问题出现了将M(min(i,j),min(i,j))映射到范围[0,(N ^ 2)/ 2)的公式

下面是3x3矩阵与K线性阵列索引的映射,X表示不存在这些单元格,而是使用它们的转置:

0123
X456
XX78
XXX9
Run Code Online (Sandbox Code Playgroud)

这是一个7x7矩阵,带有K线性阵列的索引

     0  1  2  3  4  5  6
 0  00 01 02 03 04 05 06
 1     07 08 09 10 11 12
 2        13 14 15 16 17
 3           18 19 20 21
 4              22 23 24
 5                 25 26
 6                    27
Run Code Online (Sandbox Code Playgroud)

目前我有以下内容

int main()
{
   const unsigned int N = 10;
   int M[N][N];

   int* M_ = &(M[0][0]);

   assert(M[i][j] = M_[N * min(i,j) + max(i,j)]);

   //int* …
Run Code Online (Sandbox Code Playgroud)

c++ arrays algorithm indexing matrix

11
推荐指数
2
解决办法
6545
查看次数

标签 统计

algorithm ×1

arrays ×1

c++ ×1

indexing ×1

matrix ×1