1. 數據結構對稱矩陣的壓縮存儲求數據地址
對對稱陣進行壓縮存取是將對稱元素只存一個,並將數據存儲在一維數組中
首先來確定a[i][j]在b[k]中的i,j與k的關系
首先是判定i與j的關系, 如果是下三角存儲,則分一下兩種情況
1、如果i<j, 則交換i與j的值,將上三角的位置值變換到下三角位置
2、如果i>=j,則不用執行操作直接走下面的流程
此時,i表示行坐標,j表示了坐標i之前有i行,即有1+2+...+i = (i+1)*i/2,在i標識的第i+1行有j+1個元素,由此可以確定k的值為(i+1)*i/2+j+1 = k+1 由此可得k = (i+1)*i/2+j
由此可以的,a[3][6], i=3, j=6, 由於i<j, 交換得i=6, j=3
由此 k = (6+1)*6/2+3 = 24
又由於&b[0] = 1000 每個元素占兩個位元組, 則b[24] = 1000+2*24 = 1048
由此便得到a[3][6]的地址為1048
2. 設有10階對稱矩陣a,採用壓縮存儲方式(以行序為主序存儲,則a11的地址為1),則a85的地址為。
首先,壓縮存儲對於對稱矩陣來說,等於是存對角線的右上半加對角線的元素,或者是左下半加對角線的元素,其他位置不存儲。
這題是使用行優先存儲,即先存a11,再a12,再a22,再a13,再a23,再a33,以此類推,一直到a85,所以a85的位置計算為:(1+2+3+4+5+6+7)+5=33,選擇答案B。
對稱矩陣(Symmetric Matrices)是指元素以主對角線為對稱軸對應相等的矩陣。在線性代數中,對稱矩陣是一個方形矩陣,其轉置矩陣和自身相等。
(2)對稱矩陣行存儲地址擴展閱讀
LAPACK是由美國國家科學基金等資助開發的著名公開軟體。LAPACK包含了求解科學與工程計算中最常見的數值線性代數問題,如求解線性方程組、線性最小二乘問題、特徵值問題和奇異值問題等。
LAPACK提供了豐富的工具函式,可用於諸如解多元線性方程式、線性系統方程組的最小平方解、計算特徵向量、用於計算矩陣QR分解的Householder轉換、以及奇異值分解等問題。 在NetLib亦提供了API經簡化的Fortran 95版本的LAPACK95。LAPACK以BSD授權的方法釋出。
3. 對於n階對稱矩陣A,請寫出計算任一矩陣元素的壓縮存儲地址
算i<=j的情形
aij先算如果不壓縮的地址(i-1)n+j,再算壓縮後,壓縮後相當於少了一個下三角矩陣,大小是1+2+。。。+j-1=(j-1)j/2;所以地址是(i-1)n-(j-3)j/2;
i>j的情形轉換為i<j的地址,也就是算aji。
4. 設有一個 10 階的對稱矩陣 a 採用壓縮存儲,a[0][0]為第一個元素,其存儲地址為
d + 8(8 + 1)/2 + 5 = d + d+41
5. 數據結構,根據對稱矩陣,求某位置的地址
碰到這種,別去管什麼0不0的,先弄清楚他的方式,下三角:
XOOOOOOOOO
XXOOOOOOOO
XXXOOOOOOO
XXXXOOOOOO
XXXXXOOOOO
XXXXXXOOOO
XXXXXXXOOO
XXXXXXXXOO
XXXXXXXXXO
XXXXXXXXXX
既然是從a[0][0]開始,a[7][5]是第8行第6個,一共多少個X?
前7行:1+2+3+4+5+6+7 = 28
第8行:6
28+6=34
6. 數據結構題 設有10階對稱矩陣a,採用壓縮存儲方式(以行序為主序存儲,則a11的地址為1),則a8
1+2+3+4+5+6+7+5=33
7. 設有一個10階的對稱矩陣A,採用行優先壓縮存儲方式,a11為第一個元素,其存儲地址為1,每個元素佔一個位元組
1+( 8*(8-1)/2+5-1 ) = 33,因為從1開始數的,故公式為k = i(i-1)/2+j-1
8. 一個10階對稱矩陣A,採用行優先順序壓縮存儲下三角和有個10階矩陣A,採用行序優先存儲問題
如果基質中,大部分元素和無信息的,稱此矩陣是?稀疏矩陣(稀疏矩陣),由於
節目經常在一個二維矩陣陣列中使用,所述的使用二維的存儲器空間一維數組的比例如果大多數的元素沒有任何信息,就會造成浪費內存空間,因此,必須設計稀疏矩陣陣列存儲,並使用更少的內存空間來存儲信息的完整矩陣。
安姆的二維數組有N非零元素,如果N << M * N,則A是稀疏矩陣。
由於稀疏矩陣包含許多零元素存儲在計算機將浪費大量的空間,所以我們平時使用的壓縮存儲方法。
9. 設有一個10階的對稱矩陣A,採用壓縮存儲方式,以行序為主存儲,a11為第一元素,其存儲地址為1,每
因為是對稱矩陣,只需要存一半元素
存儲方法為a11
a12 a22
a13 a23 a33
a14 a24 a34 a44
a15 a25 a35 a45 a55
...
a18 a28 a38 a48 a58
一共1+2+3+4+5+6+7+5=33