一,給定乙個矩陣,用二維陣列表示,不一定是方陣(n*n),求矩陣的轉置(向右),和向左轉置。比如:
1 2 3
4 5 6
7 8 9
向右轉置:
1 4 7
2 5 8
3 6 9
再比如:
1 2 3
4 5 6
向 左轉置
3 62 5
1 4二,實現思路
假設原來的矩陣是m*n,轉置後變成了 n*m。設原矩陣是arr[m][n],建立乙個新的矩陣 rev[n][m]
對於向右轉置而言,就是線性代數裡面的求at,對於arr[m][n]裡面的每個元素arr[i][j],將之賦值給 rev[j][i] 即可。
對於向左轉置,對於arr[m][n]裡面的每個元素arr[i][j],將之賦值給 rev[n-j-1][i] 即可。
三,完整**
publicclass
test,,};
int arr2 = ,};
reverseright(arr1);
system.out.println("---------");
reverseright(arr2);
system.out.println("***********");
reverseleft(arr1);
system.out.println("-------------");
reverseleft(arr2);
}public
static
void reverseright(int
arr)
stringbuilder sb = new
stringbuilder();
//列印旋轉後的矩陣--有col行和 row 列
for(int i = 0; i < col; i++)
sb.deletecharat(sb.length()-1);
} system.out.println(sb.tostring());
}public
static
void reverseleft(int
arr)
}//列印旋轉後的矩陣--有col行和 row 列
for(int i = 0; i < col; i++)
system.out.println();}}
}
矩陣的旋轉
time limit 1000ms memory limit 65536k 有疑問?點這裡 把矩陣a的行換成相應的列,得到的新矩陣稱為a的轉置矩陣。大家在 程式設計基礎 的上機實驗題目和平時的練習中肯定做過一些關於矩陣的題,其中最常見的就是矩陣的轉置了。so,今天我們就不考矩陣的轉置了,我們要考察一...
矩陣運算 矩陣旋轉
以下不加證明地給出在世界座標系中,以座標點 0,0,0 為原點的旋轉矩陣 包含平移的線性變換稱作仿射變換,3d中的仿射變換不能用 3 x 3 矩陣表達,必須使用4 x 4矩陣 1.繞x座標軸旋轉 1 0 0 0 0 cos a sin a 0 0 sin a cos a 0 0 0 0 1 2.繞y...
矩陣的旋轉問題
輸入乙個4 4的矩陣,進行逆時針旋轉90度後輸出,要求原始陣列的資料隨機輸入,新資料以4行4列的方式輸出 可以通過乙個二維陣列實現輸入,然後轉換 i 行為 j 列,第乙個新行數的下標為0即可b 3 j i a i j 如下 示例 include intmain printf array b n fo...