總網頁瀏覽量

2018年7月23日 星期一

2016.3月大學程式設計先修檢測 實作題 第二題(矩陣轉換)

問題描述
矩陣 是將一群元素整齊的排列成個矩形, 是將一群元素整齊的排列成個矩形, 在矩陣中的 橫排稱為 列 (rowrow ),直排稱 ,直排稱 為行 (columncolumn column),其中以 ,其中以 Xij 來表示 矩陣 X 中的第 中的第 i 列第 j行的元素 。如圖一中, 。如圖一中, 。如圖一中, 。如圖一中, 。如圖一中, 。如圖一中, X32 = 6= 6 。
我們可以 對矩陣定義 兩種操作如下 :
翻轉 :即第一列與最後交換、 二倒數…依此類推。
旋轉 :將矩陣以順時針方向轉 90 度。
例如: 矩陣 X 翻轉後可得到 Y,將矩陣 Y 再旋轉後可得到 Z。
一個矩陣 A 可以 經過一連串的 旋轉 與翻轉 操作後,轉換成 新矩陣 B。如圖二中, A 經過翻轉與兩次旋後,可以得到 經過翻轉與兩次旋後,可以得到 經過翻轉與兩次旋後,可以得到 B。給定矩陣 B 和一連串的 操作 ,請算出原 始的矩陣 A。

輸入 格式
第一行有 三個介於 1與 10 之間的 正整數 R, C, M。接下來 有 R 行(line) (line) (line)是矩陣 B的 內容 ,每一行 ,每一行 (line) line) line)都包含 都包含 C 個正整數 ,其中的第 ,其中的第 i 行第 j 個數字代表矩陣 Bij 的 值。在矩陣內容後的一行有 在矩陣內容後的一行有 M個整數, 個整數, 表示 對矩陣 對矩陣 A 進行 的操作 。第 k 個整數 mk 代表第 k 個操作 ,如果 ,如果 mk = 0 = 0 則代表 旋轉 ,mk = 1 = 1 代表 翻轉 。同一行的數字之間 同一行的數字之間 都是以一個空白間格 ,且矩陣內容為 0~9 的整數 。
輸出 格式
輸出包含兩個部分。第一有行,正整數 輸出包含兩個部分。第一有行,正整數 輸出包含兩個部分。第一有行,正整數 輸出包含兩個部分。第一有行,正整數 輸出包含兩個部分。第一有行,正整數 R' 和 C',以一個空白

2
隔開, 分別 代表矩陣 A 的列數和行數。接下來有 。接下來有 。接下來有 R' 行, 每一行都 包含 C' 個正 整數 ,且 每一行的 整數 之間以一個空白隔開 ,其中第 i 行的第 j 個數字代表矩陣 個數字代表矩陣 Aij 的值 。每一行的最後個數字並無空白。
 Python Code:

1 則留言: