码迷,mamicode.com
首页 > 编程语言 > 详细

c++ 中的下三角阵矩阵元标记

时间:2021-06-30 17:52:18      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:一维数组   矩阵   实现   isp   mat   有一个   display   修复   splay   

若有一个下三角阵,不包括对角元,其矩阵元为

\[A_{ij}, ~~~~ i = 1, \cdots, n-1, ~~~~ j=0,\cdots, i-1. \]

那么,可以用一维数组储存这些矩阵元:

\[a[k] = A_{ij}, ~~~ k = i(i-1)/2 + j. \]

这样可以将 \(k=0,\cdots,n(n-1)/2-1\)\((i,j)\) 实现一一对应,如此可以紧凑地储存下三角阵。如果需要包括对角元,我相信稍微调整一下上式,也可以类似地实现。

那么,如果已知 \(k\),欲求 \(i,j\),则可以如下使用:

\[i = [ \sqrt{2k+0.25}+0.75 ],~~ j = k - i(i-1)/2. \]

证明如下:

\[i(i-1)/2 \leq k \leq k + i-1, \i^2-i+0.25 \leq 2k + 0.25 \leq i^2 - 0.75 < i^2, \i-0.5 \leq \sqrt{ 2k+0.25 } < i, \i+0.25 \leq \sqrt{ 2k+0.25 } + 0.75 < i + 0.75, \i = [ \sqrt{ 2k+0.25 } + 0.75 ], j = k - i(i-1)/2. \]

鸣谢我雷哥,发现之前的漏洞,已修复。

c++ 中的下三角阵矩阵元标记

标签:一维数组   矩阵   实现   isp   mat   有一个   display   修复   splay   

原文地址:https://www.cnblogs.com/luyi07/p/14951670.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!