當前位置:首頁 » 服務存儲 » 存儲上三角矩陣用什麼存儲方式
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

存儲上三角矩陣用什麼存儲方式

發布時間: 2023-02-25 01:05:57

❶ 特殊矩陣的壓縮存儲:上三角、對稱、下三角存儲,有三個問題。求大俠們解答~親一個~這個圖能看清嗎

1.k=n*(n+1)/2的原因是:對於三角矩陣,從1到N的總和是這么多,也就是說整個矩陣有這么多元素。另外正三角陣對應正方形。
對稱矩陣滿足A的轉置也就是自身的特點,元素上,a[i,j] = a[j,i]。實際上的存儲可以利用三角陣。所以老實說我對於他對稱陣演算法為什麼少一個元素也有疑惑。
可能是三角陣可以對應不等長的矩陣,所以造成了k值不一樣。
2.上三角陣,存在的元素是滿足[1<= j <=n, i >= j]的關系[這里用i表橫坐標j表縱坐標],如果是長3寬4的當然不能和長4寬3的相提並論,試著畫畫就明白了。
3.對稱陣不會出現像三角陣那樣有一小角還是其他數字的情況。這個其他數字就是(6+1)-1=6。
4.壓縮存儲,只是將部分符合條件的矩陣減少一部分的存儲空間。老實說我也感覺不很有用,除非他處理的數據本身必然具備此類特點。
5.固定的,多試幾次自己記下來然後找找就好。如果沒記錯的話,在矩陣上畫畫就可以看出來。
6.stdlib.h是標準的輸入輸出庫,最為常用,至少裡麵包括了scanf等函數,只要你需要printf你就不能扔掉它。否則會出現函數未定義的問題。畢竟語言本身不提供函數類庫,類庫需要另行引用。

❷ 簡述一下如何將一個上三角矩陣以列為主序壓縮存儲在一個一維數組

給一維數組分配矩陣數據總數+2的長度。

數組第一個和第二個存儲矩陣的行數和列數
然後你將矩陣每列順序的存儲到該數組中

應該可以

列數判斷何時數組結束
行數判斷每列的界限

❸ 矩陣的壓縮存儲是什麼

二維數組在形式上是矩陣,因此一般用二維數組來存儲矩陣。在不壓縮存儲的情況下,矩陣採用按行優先或按列優先方式存儲,佔用的存儲單元數等於矩陣的元素個數。在實際應用中,經常出現一些階數很高的矩陣,同時在矩陣中非零元素呈某種規律分布或者矩陣中有大量的零元素,若仍然用常規方法存儲,可能存儲重復的非零元素或零元素,這將造成存儲空間的大量浪費。因此對這類矩陣進行壓縮存儲,從而合理地利用存儲空間。

為了節省存儲空間,可以利用特殊矩陣的規律,對它們進行壓縮存儲,也就是說為多個值相同的元素只分配一個存儲單元,對零元素不分配空間。適合壓縮存儲的矩陣一般是值相同的元素或者零元素在矩陣中分布有一定規律的特殊矩陣和稀疏矩陣。常見的特殊矩陣有對稱矩陣、三角矩陣和對角矩陣。

❹ 數據結構特殊矩陣壓縮存儲問題

這個問題出在下標的問題上吧,第一個問題,明確說明第一個非零元素a(1,1)存於B[0]中,所以推導時沒問題。

第二個問題並沒有說第一個非零元素a(1,1)存於B[0]中,但大多教材推導是,是將第一個非零元素a(0,0)存於B[0]中,所以公式就不一樣了,你的推導邏輯沒問題。

❺ 上三角矩陣按行優先存儲公式

題目出錯了,上三角肯定是 i<=j
公式也不對,怎麼可能跟n無關呢,第i行的元素個數是n-i+1,
a(i,j)前面有i-1行,這i-1行共有(n-1+1)+...+(n-(i-1)+1)個元素,第i行有j-i+1,加在一起再減1就是k(因為數組下標為0)