4上三角、下三角、对称矩阵
来源:互联网 发布:食品药品数据查询 编辑:程序博客网 时间:2024/04/28 15:38
说明
上三角矩阵是矩阵在对角线以下的元素均为0,即Aij = 0,i > j,例如:
1
2
3
4
5
0
6
7
8
9
0
0
10
11
12
0
0
0
13
14
0
0
0
0
15
下三角矩阵是矩阵在对角线以上的元素均为0,即A ij = 0 ,i < j ,例如:
1
0
0
0
0
2
6
0
0
0
3
7
10
0
0
4
8
11
13
0
5
9
12
14
15
对称矩阵是矩阵元素对称于对角线,例如:
1
2
3
4
5
2
6
7
8
9
3
7
10
11
12
4
8
11
13
14
5
9
12
14
15
上三角或下三角矩阵也有大部份的元素不储存值(为0) ,我们可以将它们使用一维阵列来储存 以节省储存空间,而对称矩阵因为对称于对角线,所以可以视为上三角或下三角矩阵来储存。
解法
假设矩阵为nxn,为了计算方便,我们让阵列索引由1 开始,上三角矩阵化为一维阵列,若以列为主,其公式为:
【】
化为以行为主,其公式为:
【】
下三角矩阵化为一维阵列,若以列为主,其公式为:
【】
若以行为主,其公式为:
【】
公式的导证其实是由等差级数公式得到,您可以自行绘图并看看就可以导证出来,对于C/C++ 或Java等索引由0开始的语言来说,只要将i与j各加1 ,求得loc之后减1 即可套用以上的公式。
********************************程序*****************************************
#include <stdio.h>
#include <stdlib.h>
#define N 5
int main(void) {
int arr1[N][N] = {
{1, 2, 3,4,5},
{0, 6, 7,8,9},
{0, 0, 10,11,12},
{0, 0, 0,13, 14},
{0, 0, 0,0,15}};
int arr2[N*(1+N)/2] = {0};
int i, j, loc = 0;
printf("原二维资料:\n");
for(i = 0; i < N; i++) {
for(j = 0; j < N; j++) {
printf("%4d", arr1[i][j]);
}
printf("\n");
}
printf("\n以列为主:");
for(i = 0; i < N; i++) {
for(j = 0; j < N; j++) {
if(arr1[i][j] != 0)
arr2[loc++] = arr1[i][j];
}
}
for(i = 0; i < N*(1+N)/2; i++)
printf("%d ", arr2[i]);
printf("\n输入索引(i, j) :");
scanf("%d, %d", &i, &j);
loc = i*(2*N-i+1)/2+j-i;
printf("(%d, %d) = %d", i, j, arr2[loc]);
printf("\n");
return 0;
}
********************************END************************************
[待编辑修改]
- 4上三角、下三角、对称矩阵
- 上三角矩阵下三角矩阵
- 通过输入下三角或者上三角实现输出对称矩阵
- 带状矩阵,对称矩阵,三角矩阵
- 判断上三角矩阵
- 矩阵上三角打印
- 上三角蛇形矩阵
- 判断上三角矩阵
- 判断上三角矩阵
- 填充一个上三角矩阵
- 打印矩阵上三角java
- 数据结构示例之矩阵上三角为0值、下三角非0值
- 一题多解(八)—— 矩阵上三角(下三角)的访问
- cublasStrsv中的下/上三角矩阵必须是按列存储的
- NY--858 -- 下三角矩阵
- 矩阵下三角元素和
- 矩阵下三角元素之和
- 三角矩阵
- Android ListView的分组显示,分组标题悬浮,点击查看分组的功能实现
- 安装了Tomcat Plugin插件,为什么没有出现三个Tomcat的猫图标的解决方法
- Ant—如何Windows操作系统中搭建Apache Ant环境
- WSDL和SOAP的关系
- [数据结构与算法]树、森林与二叉树的转换
- 4上三角、下三角、对称矩阵
- 通知中心
- 会话Cookie与session的关系
- 输入一个英文句子,翻转句子中单词的顺序,但单词内字符顺序不变
- 原码、反码、补码
- redis安装配置
- 深入浅出学习Struts1框架(一):一个简单mvc模式代码示例开始
- SVN使用简介
- hdu 1069 Monkey and Banana (结构体排序,也属于简单的dp)