• 矩 阵 压 缩


    1. 对称矩阵压缩

    [ a x x x x x b x x x x x c x x x x x d x x x x x e ]

    [axxxxxbxxxxxcxxxxxdxxxxxe]
    axxxxxbxxxxxcxxxxxdxxxxxe
    在这里插入图片描述
    [ a x b x x c x x x d x x x x e ]
    [axbxxcxxxdxxxxe]
    axxxxbxxxcxxdxe

    二维数组中 a i j a_{ij} aij在一维数组中的下标:
    k = i ( i − 1 ) / 2 + j − 1 k=i(i-1)/2+j-1 k=i(i1)/2+j1

    对于对称矩阵我们可以只保存下三角(包括对角线上的元素),或上三角的元素

    原来需要的存储单元个数 n × n n \times n n×n 变成了 ( n ( n + 1 ) / 2 ) (n(n+1)/2) (n(n+1)/2)

    2. 上下三角矩阵压缩

    2.1 下三角对称矩阵压缩

    对于
    [ a 11 a 21 a 22 a 31 a 32 a 33 a 41 a 42 a 43 a 44 a 51 a 52 a 53 a 54 a 55 ]

    [a11a21a22a31a32a33a41a42a43a44a51a52a53a54a55]
    a11a21a31a41a51a22a32a42a52a33a43a53a44a54a55

    [ a 11 . . . a i 1 . . . a i j . . . . . . a n 1 . . . a n j . . . a n n ]
    [a11...ai1...aij......an1...anj...ann]
    \\
    a11...ai1...an1......aijanj......ann

    转化为
    [ a 11 . . . a i 1 . . . a i j . . . a n 1 . . . a n j . . . a n n ]
    [a11...ai1...aij...an1...anj...ann]
    \\
    [a11...ai1...aij...an1...anj...ann]

    原矩阵中的下标 i , j i,j i,j,对应于数组中的下标 k k k
    在这里插入图片描述

    2.2 上三角对称矩阵压缩

    对于
    [ a 11 a 12 a 13 a 14 a 22 a 23 a 24 a 33 a 34 a 44 ]

    [a11a12a13a14a22a23a24a33a34a44]
    a11a12a22a13a23a33a14a24a34a44

    [ a 11 . . . a 1 j . . . a 1 n . . . . . . a i j . . . a i n . . . a n n ]
    [a11...a1j...a1n......aij...ain...ann]
    \\
    a11...a1j...aij......a1n...ain...ann

    转化为
    [ a 11 . . . a 1 j . . . a 1 n . . . a i j . . . a i n . . . a n n ]
    [a11...a1j...a1n...aij...ain...ann]
    \\
    [a11...a1j...a1n...aij...ain...ann]

    原矩阵中的下标 i , j i,j i,j,对应于数组中的下标 k k k
    在这里插入图片描述
    即:
    k = ( i − 1 ) ( 2 n − i + 2 ) / 2 + j − i k=(i-1)(2n-i+2)/2+j-i k=(i1)(2ni+2)/2+ji

    2. 对角矩阵压缩

    将矩阵
    [ a 11 a 12 0 0 0 a 21 a 22 a 23 0 0 0 a 32 a 33 a 34 0 0 0 a 43 a 44 a 45 0 0 0 a 54 a 55 ]

    [a11a12000a21a22a23000a32a33a34000a43a44a45000a54a55]
    a11a21000a12a22a32000a23a33a43000a34a44a54000a45a55
    压缩为一维矩阵
    [ a 11 a 12 a 21 a 22 a 23 a 32 a 33 a 34 a 43 a 44 a 45 a 54 a 55 ]
    [a11a12a21a22a23a32a33a34a43a44a45a54a55]
    [a11a12a21a22a23a32a33a34a43a44a45a54a55]

    原来 n × n n \times n n×n个存储单元现在只要 3 n − 2 3n-2 3n2

    原矩阵中的下标 i , j i,j i,j,对应于数组中的下标 k k k
    在这里插入图片描述

    k = 2 i + j − 3 k=2i+j-3 k=2i+j3
    已知 k k k:
    { i = ⌊ ( k + 1 ) / 3 ⌋ + 1 j = k − 2 i + 3

    {i=(k+1)/3+1j=k2i+3
    {i=(k+1)/3+1j=k2i+3

  • 相关阅读:
    学习笔记——树上哈希
    下一代大数据分布式存储技术Apache Ozone初步研究
    Linux常用命令——consoletype命令
    【无标题】
    在Pikachu平台中利用代码注入漏洞的编辑框在哪?
    UE4 材质多张图片拼接成一张图片(此处用2×2拼接)
    Windows10 MySQL(8.0.37)安装与配置
    深入了解快速排序:原理、性能分析与 Java 实现
    Leetcode 2239. Find Closest Number to Zero (Python)
    温敏性N-异丙基丙烯酰胺(NIPA)和pH敏感性丙烯酸(AA)接枝纳米聚苯乙烯微球相关研究
  • 原文地址:https://blog.csdn.net/m0_52313753/article/details/125468655