java生成对称矩阵_JAVA 对称矩阵的压缩存储
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 对称矩阵的压缩存储相关推荐
- java zip 创建目录_Java实现Zip压缩目录中的所有文件
java中将一个文件夹下所有的文件压缩成一个文件,然import java.io.*; import java.util.zip.*; public class CompressD { // 缓冲 s ...
- java 生成随机数_Java 生成随机数的 N 种方法
原标题:Java 生成随机数的 N 种方法 www.baeldung.com/java-generating-random-numbers 1.引言 本文将探讨用 Java 生成随机数的不同方法. 2 ...
- java 生成缩略图_Java实现等比例缩略图
1.简介:Web应用为上传图片生成缩略图是常见的基本功能,通过缩略图生成提高了信息浏览时的性能,在保证用户使用体验的同时减少了数据传输量. 2.实现图片等比例缩略图生成,方式及相关工具介绍: (1)T ...
- java生成密码_java生成密码生成 | 学步园
一.根据当前日期生成MD5加密密码 package com.test; import java.security.MessageDigest; import java.text.SimpleDateF ...
- java 生成拼音_java工具-常用汉语转拼音库Pinyin4j 、tinypinyin、JPinyin
Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换,拼音输出格式可以定制,在项目中经常会遇到需求用户输入汉字后转换为拼音的场景,这时候Pinyin4j就可以派上用场 有自己私服的可以 ...
- java生成条码_Java生成商品条形码
之前没有使用过这个,现在使用JBarcode生成商品条形码,工作之前的准备工作: Eclipse: Eclipse Java EE IDE for Web Developers. Version: H ...
- java文本压缩算法_java 什么算法压缩文件最小
展开全部 有三种方式实现java压缩: 1.jdk自带的包java.util.zip.ZipOutputStream,不足之处,文件(夹)名称32313133353236313431303231363 ...
- java生成圆_java工具类-java实现 生成圆头像
1.创建RoundHeadImgUtils工具类 package com.mrd.utils; import javax.imageio.ImageIO; import java.awt.*; imp ...
- java生成表_java生成表格图表
项目有个需求是生成上图的表格图表,本来excel很容易生成上边的表格图,但是java poi不支持在服务器端把excel表格导出成图片,在没有找到合适的工具库下,用java 2d实现同样图表. 这个表 ...
- java生成迷宫_Java实现可视化迷宫
需求 使用深度优先算法求解迷宫路径,使用Java实现求解过程的可视化,可单步运行,形象直观. 演示效果 红色格子为迷宫终点,迷宫可放大缩小,为了录屏选择了较小的尺寸,有多种不同难度的迷宫可以加载. 简 ...
最新文章
- 多通道接收机幅相校准测试系统的设计
- 利用java做一个简单的计算器
- 如何规划 ElasticSearch 集群规模和容量?
- 初学者如何开发出高质量J2EE系统
- CMOS图像传感器——工作原理
- 使用JAVASCRIPT进行全屏显示页面,就像触摸屏显示效果
- C#结合VS开发WinForm学习笔记
- python基础系列二:列表
- matlab基于模型的测试与验证,基于模型的测试和验证工具——Reactis
- 西门子step7安装注册表删除_不用重装系统就能完全卸载西门子PLC编程软件STEP 7...
- 未公开接口主要指以下哪几类_办公家具配套主要有哪些家具-GAVEE家维依为您解答...
- 计算机编程告白,程序员的520,五个表白代码,一看就会
- 开源、绿色,解压即可运行的数据库连接工具推荐
- 【golang】kafka
- Win系统 - Windows下的沙盒运行模式,竟然这么有用?!
- 海康设备云平台简单控制
- 火星存在大型地下水系统,火星或曾是一片海洋
- 诺基亚选择投奔微软的得与失
- 图释仿射(Affine)变换与平行投影
- swiper支持动态加载数据