特殊矩陣運算

2021-06-06 18:27:49 字數 488 閱讀 2182

問題描述:假設矩陣存在某種特殊運算,要求對矩陣任意乙個元素減1時,必須對其鄰居(上下左右)中的乙個同時減1。現給定乙個矩陣,要求判斷能否通過有限次特殊運算得到零矩陣

思路:回溯法。列舉所有可進行特殊運算的位置並以此遞迴,若出現元素小於0的情況則進行回溯。不用每次判斷零矩陣,只需要維護乙個計數變數cnt,統計當前矩陣非零元素個數。每次進行特殊運算時,更新cnt的值

**(效率較低,應該可以進一步優化):

int ok;  //全域性變數,儲存判斷結果

void process(int ** a, int n, int m, int cnt)

if(i+1 < n && a[i+1][j]-1 >= 0)

if(j-1 >= 0 && a[i][j-1]-1 >= 0)

if(j+1 < m && a[i][j+1]-1 >= 0)

a[i][j]++; //記得恢復}}

} }}

特殊矩陣 稀疏矩陣

對於乙個m n的矩陣,設s為矩陣的元素總個數s m n,設t為矩陣中非零元素的個數,滿足t 稀疏矩陣的零元素非常多,且分布無規律,所以稀疏矩陣的壓縮儲存方法為 只儲存矩陣中的非零元素,按照三元組的形式儲存。三元組由非零元素,該元素行下標和該元素列下標三個資料構成,放在乙個列數為3的陣列中。儲存結構又...

矩陣及其特殊矩陣

之前我們已經用陣列的陣列方式寫了乙個二維陣列,並實現了其轉置,加法和乘法運算,現在我們將用行主描述方法重寫乙個矩陣及其運算。template class matrix int rows const int columns const t operator int i,int j const matr...

005 矩陣初始化 運算 特殊矩陣初始化

矩陣定義 m行 n列 import tensorflow as tf data1 tf.constant 6,6 data2 tf.constant 2 2 data3 tf.constant 3,3 data4 tf.constant 1,2 3,4 5,6 matmul tf.matmul da...