陣列之三種矩陣

2022-09-02 12:09:10 字數 2279 閱讀 3196

矩陣的壓縮:對於某些特殊的矩陣來說,非零元素較少,大部分元素為0,採用某種演算法,將非零元素儲存在一位陣列裡以達到節省儲存空間的目的的過程,稱為矩陣的壓縮

矩陣的還原:將壓縮後的陣列還原成原始矩陣的過程

所謂對角矩陣:

矩陣中的所有非零元素都集中在以主對角線為中心的帶狀區域中,

即除了主對角線上和直接在主對角線上下若干條對角線上的元素外,其餘元素均為零。

這樣的矩陣稱為半頻寬為d的帶狀矩陣,頻寬是2*d+1,d為直接在對角線上下方不為0的對角線數

對於n階2d+1對角矩陣,只需要存放對角線區域內 n*(2*d+1)-d*(d+1)個非零元素

為了簡便運算,認為每一行都有2*d+1個元素,若少於2*d+1個元素,則添零補齊。

因為非零元素都在主對角線元素的左右兩側,

那麼只要在矩陣的每一行的主對角線元素的兩側分別  「湊夠」d個元素即可,

如果該元素  「不在"  矩陣內部,則補零,如果「在」矩陣內部,則儲存到一維陣列中即可

對稱矩陣  array[ i ][ j ]=array[ j ][ i ]  所以對於相同的元素只儲存乙個

壓縮成乙個一維陣列後 array [ i ]  [ j]  =array [ j ]  [ i  ]

s [ k ] = i * ( i + 1 ) / 2 + j = j * ( j + 1  ) / 2 + i ;

對於乙個n階的矩陣而言,壓縮後一維空間的數目為  n*(n+1)/2;

所謂三角矩陣:

整個矩陣只有主對角線及主對角線以上(或以下)為非零元素。

下三角形矩陣:主對角線及主對角線以下為非零元素

上三角形矩陣:主對角線及主對角線以上為非零元素

很顯然對於乙個n階的矩陣而言,壓縮後一維空間的數目為n*(n+1)/2;(等差數列求和)

(以下以下三角為例進行分析)

根據該矩陣的性質,很容易得出結論

很顯然第一行乙個元素,第二行兩個元素,依次類推。。。

Kafka之 三種消費模式

以下例項 展示了如何自動提交topic的offset public void autooffsetcommit properties的例項props中存放的key意義 1 bootstrap.servers表示要連線的kafka集群中的節點,其中9092表示埠號 2 group.id表示kafka消...

爬蟲之三種解析方式

1.實現標籤的定位 2.將標籤中的儲存的文字內容或者相關的屬性值進行提取 單字元 除換行以外所有字元 aoe a w 匹配集合中任意乙個字元 d 數字 0 9 d 非數字 w 數字 字母 下劃線 中文 w 非 w s 所有的空白字元包,括空格 製表符 換頁符等等。等價於 f n r t v s 非空...

EF框架之三種模式

使用ef之前必須要對ef有個巨集觀的了解.學習任何一種技術都要像門衛一樣問幾個問題.第一,它是誰?第二,從 來?第三,到 去?默念一遍 不謀全域性者,不足謀一域.其實entity framework的底層也是呼叫ado.net,它是更高層次的封裝.作為資料訪問的技術,entityframework的...