1、什么是对称矩阵

这就是一个4阶矩阵,红色为对角线。除对角线的元素,关于对角线的元素值相等。

2、问题的由来

对于N阶矩阵,有n*n个元素,如果采用二维数组存储,则需要对应数量的存储单元,可以利用对阵矩阵中

a[i][j] = a[j][i]的特点,使用更少的空间存储该矩阵。

3、解决方案

不废话,先上源代码,数组采用按行存储优先。

int[][] a1 = new int[5][5];

for(int i=0;i<5;i++){

for(int j=i;j<5;j++){

a1[i][j] = (int) Math.round(Math.random()*100);

if(i!=j)a1[j][i] =a1[i][j];

}

int[] b = new int[5*6/2];

for(int i=0;i<5;i++){

for(int j=0;j<=i;j++){

b[i*(i+1)/2+j] = a1[i][j];

}

}

}

使用整数的二维数组来生成原始矩阵。

生成的矩阵如下

53, 71, 11, 11, 27

71, 40, 21, 61, 35

11, 21, 45, 77, 60

11, 61, 77, 82, 76

27, 35, 60, 76, 13

压缩存储后如下

[53, 71, 40, 11, 21, 45, 11, 61, 77, 82, 27, 35, 60, 76, 13]

可以减少的存储空间为 n(n-1)/2。

4 扩展

三角矩阵也可以进行压缩存储,其可以看成是0元素侧不需要存储的对称矩阵。

java生成对称矩阵_JAVA 对称矩阵的压缩存储相关推荐

  1. java zip 创建目录_Java实现Zip压缩目录中的所有文件

    java中将一个文件夹下所有的文件压缩成一个文件,然import java.io.*; import java.util.zip.*; public class CompressD { // 缓冲 s ...

  2. java 生成随机数_Java 生成随机数的 N 种方法

    原标题:Java 生成随机数的 N 种方法 www.baeldung.com/java-generating-random-numbers 1.引言 本文将探讨用 Java 生成随机数的不同方法. 2 ...

  3. java 生成缩略图_Java实现等比例缩略图

    1.简介:Web应用为上传图片生成缩略图是常见的基本功能,通过缩略图生成提高了信息浏览时的性能,在保证用户使用体验的同时减少了数据传输量. 2.实现图片等比例缩略图生成,方式及相关工具介绍: (1)T ...

  4. java生成密码_java生成密码生成 | 学步园

    一.根据当前日期生成MD5加密密码 package com.test; import java.security.MessageDigest; import java.text.SimpleDateF ...

  5. java 生成拼音_java工具-常用汉语转拼音库Pinyin4j 、tinypinyin、JPinyin

    Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换,拼音输出格式可以定制,在项目中经常会遇到需求用户输入汉字后转换为拼音的场景,这时候Pinyin4j就可以派上用场 有自己私服的可以 ...

  6. java生成条码_Java生成商品条形码

    之前没有使用过这个,现在使用JBarcode生成商品条形码,工作之前的准备工作: Eclipse: Eclipse Java EE IDE for Web Developers. Version: H ...

  7. java文本压缩算法_java 什么算法压缩文件最小

    展开全部 有三种方式实现java压缩: 1.jdk自带的包java.util.zip.ZipOutputStream,不足之处,文件(夹)名称32313133353236313431303231363 ...

  8. java生成圆_java工具类-java实现 生成圆头像

    1.创建RoundHeadImgUtils工具类 package com.mrd.utils; import javax.imageio.ImageIO; import java.awt.*; imp ...

  9. java生成表_java生成表格图表

    项目有个需求是生成上图的表格图表,本来excel很容易生成上边的表格图,但是java poi不支持在服务器端把excel表格导出成图片,在没有找到合适的工具库下,用java 2d实现同样图表. 这个表 ...

  10. java生成迷宫_Java实现可视化迷宫

    需求 使用深度优先算法求解迷宫路径,使用Java实现求解过程的可视化,可单步运行,形象直观. 演示效果 红色格子为迷宫终点,迷宫可放大缩小,为了录屏选择了较小的尺寸,有多种不同难度的迷宫可以加载. 简 ...

最新文章

  1. 多通道接收机幅相校准测试系统的设计
  2. 利用java做一个简单的计算器
  3. 如何规划 ElasticSearch 集群规模和容量?
  4. 初学者如何开发出高质量J2EE系统
  5. CMOS图像传感器——工作原理
  6. 使用JAVASCRIPT进行全屏显示页面,就像触摸屏显示效果
  7. C#结合VS开发WinForm学习笔记
  8. python基础系列二:列表
  9. matlab基于模型的测试与验证,基于模型的测试和验证工具——Reactis
  10. 西门子step7安装注册表删除_不用重装系统就能完全卸载西门子PLC编程软件STEP 7...
  11. 未公开接口主要指以下哪几类_办公家具配套主要有哪些家具-GAVEE家维依为您解答...
  12. 计算机编程告白,程序员的520,五个表白代码,一看就会
  13. 开源、绿色,解压即可运行的数据库连接工具推荐
  14. 【golang】kafka
  15. Win系统 - Windows下的沙盒运行模式,竟然这么有用?!
  16. 海康设备云平台简单控制
  17. 火星存在大型地下水系统,火星或曾是一片海洋
  18. 诺基亚选择投奔微软的得与失
  19. 图释仿射(Affine)变换与平行投影
  20. swiper支持动态加载数据

热门文章

  1. 开源软件、自由软件和免费软件的区别
  2. Alexa交叉编译(avs-device-sdk)
  3. 测井曲线wis文件格式转换为ASCII文本格式小软件的开发(C与Python结合开发)
  4. USB转串口设备如何固定串口号
  5. java计算机毕业设计计算机系教师教研科研管理系统源码+数据库+系统+lw文档+mybatis+运行部署
  6. 链路聚合实现冗余功能综合实验
  7. 如何免费下载百度文库文档
  8. 关于windows完成端口(IOCP)的一些理解
  9. HTML如何实现简单登录页面
  10. LR11.0 下载及破解