練習:用試算表或程式做矩陣運算,並用一格手算核對

回課文。每題先自己做,需要時再依序展開提示。看過第 3 層以上提示才做出來的題目,算是練習,還不算獨立完成,之後要隔一段時間,不看提示,用原題重做一次。L5 會揭示完整答案。

約定:矩陣的橫排叫列,直排叫行(試算表說的「欄」就是這裡的行);第 i 列第 j 行的位置寫成 [i, j]。「工具輸出」是印出來給你看的表,不需要你有任何軟體。題目中的情境與數字是為了練習設計的,不是真實資料。每題的答案都要附上你手算那一格的算式,只寫工具的結果不算完成。

診斷題

練習 1

甲、乙、丙三間店,各賣兩種商品。表 A 是三間店兩種商品的售出量(3 列 2 行),表 B 是同三間店同兩種商品的進貨量(也是 3 列 2 行)。有人要求工具算乘積 AB。下列哪一項說法正確?

(甲)可以算,結果是 3×2。(乙)可以算,結果是 3×3。(丙)不能算,因為 A 的行數 2 不等於 B 的列數 3。(丁)不能算,因為矩陣乘法要求兩個表一樣大才行。

請寫出你選哪一項,並說明你比較了哪兩個數。

提示階梯(L1→L5)
L1(方向)

先分別寫出 A 與 B 的尺寸,格式是「列數×行數」。

L2(結構)

乘法要不要成立,要看尺寸中的哪兩個數互相比較?加法和乘法比較的數一樣嗎?

L3(方法)

AB 能算的條件是:A 的行數等於 B 的列數(把兩個尺寸並排寫,最中間相鄰的兩個數要相等)。兩個表一樣大是加法的條件,不是乘法的條件。

L4(設定與中間結果)

本題 A 的尺寸是 3×2,B 的尺寸是 3×2。把兩個尺寸並排寫成 (3×2)(3×2),請看中間相鄰的兩個數,判斷它們是否相等,再對照四個選項。

L5(完整解答)

答案是(丙)。(3×2)(3×2):中間兩個數 2 與 3 不相等,A 的每一列只有 2 個數,B 的每一行卻有 3 個數,配不成對,所以 AB 不能算。(甲)(乙)都是假設能算;(丁)把加法的條件(兩表同尺寸)當成乘法的條件,兩者不同。補充:若要得到每間店的某種合計,通常是另一張尺寸相配的表(例如 2×1)來乘。

可能的錯法與補救(做完或卡住再看)

可能的錯法(這些是為練習設計的例子,不是真實同學的作答):選(甲):以為能算且尺寸跟 A 一樣,這是把乘法當成加法(同位置運算);選(乙):沒有先檢查就假設結果是列數×列數;選(丁):知道不能算,但理由寫成「兩表要一樣大」,把加法的條件搬到乘法(本題兩表其實一樣大,卻仍不能乘)。

補救:先看〔回課文:運算與尺寸規則〕的表,把加法與乘法的條件分開寫兩行;做乘法題時固定先寫「(A 的尺寸)(B 的尺寸)」,圈出中間兩個數再動手。

〔回課文:運算與尺寸規則〕

回到本題題面

練習 2

甲、乙兩間店三天的售出量如下(列是店,行是第 1 至第 3 天)。工具算出 C=A+B,但印出的 C 只有一格與正確結果不同。

A第1天第2天第3天
甲店352
乙店614
B第1天第2天第3天
甲店207
乙店183
工具輸出:C=A+B
C第1天第2天第3天
甲店559
乙店7910

請指出有錯的是 C 的哪一個位置 [i, j](第 i 列第 j 行),並寫出該位置的正確值。

提示階梯(L1→L5)
L1(方向)

C=A+B 時,C 的每一格應該由 A、B 的哪個位置的數得到?

L2(結構)

只有一格錯,所以其他格都與正確結果相同。你可以一列一列地比對,不必一次算完。

L3(方法)

C 的 [i, j] 等於 A 的 [i, j] 加 B 的 [i, j]。逐格相加,把得到的數和輸出對照,第一個不相符的格就是答案;找到後再確認其餘格相符。

L4(設定與中間結果)

第 1 列:A 的 [3, 5, 2] 與 B 的 [2, 0, 7] 逐格相加,結果與輸出第 1 列 [5, 5, 9] 相符。請接著算第 2 列:A 的 [6, 1, 4] 與 B 的 [1, 8, 3] 逐格相加,與輸出第 2 列 [7, 9, 10] 比較。

L5(完整解答)

第 2 列正確結果是 [7, 9, 7]:6+1=7、1+8=9、4+3=7。輸出的 [2, 3] 是 10,與 7 不同。答案:錯的是 [2, 3](乙店第 3 天),正確值是 7。

可能的錯法與補救(做完或卡住再看)

可能的錯法(這些是為練習設計的例子,不是真實同學的作答):說成「第 3 列第 2 行」:把 [i, j] 的次序弄反,而且表只有 2 列;只核對 [1, 1] 就說沒有錯:一格相符不代表其他格也對(錯的格偏偏不是你抽查的那格);把錯格的正確值算成 1:加法算成減法。

補救:先在每張表上標出「列、行」,再說出 [i, j] 是「第 i 列第 j 行」。要確認一張輸出,至少換列也換行地抽查兩格;本題因為只有 6 格,可以全部核對。

〔回課文:手算抽查〕

回到本題題面

練習 3

圖書館記下甲、乙、丙三個班(依序為第 1、2、3 列)在週一、週二、週三、週四(依序為第 1、2、3、4 行)的借書本數,輸入工具後得到矩陣 D,工具回報的尺寸為 3×4。

12794
81036
521113

(1)D 的 [3, 2] 位置(第 3 列第 2 行)代表哪一個班、星期幾?(2)那一格的值是多少?(3)矩陣 D 的 [2, 3] 位置代表什麼?值是多少?

提示階梯(L1→L5)
L1(方向)

先確定:列代表什麼對象、行代表什麼屬性。

L2(結構)

[i, j] 的 i 是列號、j 是行號。把題目給的列次序和行次序寫在矩陣旁邊,再去對照。

L3(方法)

列由上而下是甲、乙、丙;行由左而右是週一、週二、週三、週四。[3, 2] 是第 3 列(哪一班)和第 2 行(星期幾)交會的那一格。

L4(設定與中間結果)

第 3 列是 [5, 2, 11, 13],第 2 行是每一列由左數來第 2 個數。請在第 3 列中取第 2 個數;[2, 3] 則是第 2 列 [8, 10, 3, 6] 的第 3 個數。

L5(完整解答)

[3, 2]:丙班、週二,借書 2 本。[2, 3]:乙班、週三,借書 3 本。尺寸 3×4 與「3 個班、4 天」相符。

可能的錯法與補救(做完或卡住再看)

可能的錯法(這些是為練習設計的例子,不是真實同學的作答):把 [3, 2] 讀成「第 2 列第 3 行」:得到乙班週三 3 本(其實是 [2, 3]);把列和行都數成從 0 開始,得到別的格;只回答數字而不說是哪個班哪一天,這樣的答案缺少列行語意。

補救:每次先寫「第 i 列=哪個對象,第 j 行=哪個屬性」,再取數。[i, j] 的順序永遠是「列在前、行在後」,可用「先上下、後左右」記。

〔回課文:矩陣資料表的約定〕

回到本題題面

初練 A:加、減與倍數

練習 4

三間倉庫(依序為第 1、2、3 列)有兩種商品(依序為第 1、2 行)。表 A 是上月底的庫存量,表 B 是本月的進貨量。

A(庫存)商品甲商品乙
倉庫13018
倉庫22540
倉庫31235
B(進貨)商品甲商品乙
倉庫1105
倉庫21520
倉庫389

工具要算 C=A+B,表示進貨後各倉庫各商品的存量。(1)C 的尺寸是多少?(2)請手算 C 的 [3, 2] 位置的值,寫出算式,並說明它的意義。

提示階梯(L1→L5)
L1(方向)

加法要求兩個表有什麼關係?結果表的尺寸怎麼決定?

L2(結構)

[3, 2] 是第 3 列第 2 行。要用 A 和 B 的哪一格?

L3(方法)

C 的 [3, 2] 等於 A 的 [3, 2] 加 B 的 [3, 2]。先在兩張表上找到第 3 列第 2 行。

L4(設定與中間結果)

A 的第 3 列是 [12, 35],B 的第 3 列是 [8, 9]。第 2 行就是各取第 2 個數:35 與 9。請把它們相加,並說明那一格是哪個倉庫、哪個商品。

L5(完整解答)

A、B 都是 3×2,可以相加,C 也是 3×2。C 的 [3, 2]=35+9=44,意義是倉庫 3 的商品乙在進貨後有 44 件。

可能的錯法與補救(做完或卡住再看)

可能的錯法(這些是為練習設計的例子,不是真實同學的作答):尺寸寫成 2×3:列數與行數次序弄反;只寫 35:只取了 A 的那一格,忘了加進貨量;算成 26:加法誤用成減法(庫存減進貨)。

補救:先寫兩表的尺寸並比較,再用「C 的 [i, j]=A 的 [i, j]+B 的 [i, j]」寫出算式,算式裡的兩個數要能指出各自在哪一列哪一行。

〔回課文:運算與尺寸規則〕

回到本題題面

練習 5

兩種配方(依序為第 1、2 列)各用三種材料(依序為第 1、2、3 行),單位是克。表 R 是一份的用量。有人用工具把 R 乘上某個倍數 k 得到表 D=kR(整張表同乘 k),但印出的結果只顯示了兩格,其餘用「?」遮住。

R材料甲材料乙材料丙
配方120155
配方2103025
工具輸出:D=kR(部分顯示)
D材料甲材料乙材料丙
配方160??
配方2?90?

(1)求倍數 k,並說明你用哪一格求的、怎麼用另一格再核對。(2)D 的 [1, 3] 位置應該是多少?

提示階梯(L1→L5)
L1(方向)

純量倍 kR 對 R 的每一格做的是同一個動作。這個動作是什麼?

L2(結構)

輸出顯示的格,和 R 的「同一個位置」有什麼關係?

L3(方法)

D 的 [i, j]=k×R 的 [i, j]。選一個已顯示的格,用「輸出值÷R 的值」得到 k,再用另一個已顯示的格核對是否得到同一個 k。

L4(設定與中間結果)

D 的 [1, 1] 顯示 60,R 的 [1, 1] 是 20;D 的 [2, 2] 顯示 90,R 的 [2, 2] 是 30。請各做一次除法,看商是否相同。得到 k 之後,再乘在 R 的 [1, 3] 上。

L5(完整解答)

60÷20=3,90÷30=3,兩格得到同一個倍數,所以 k=3。D 的 [1, 3]=k×R 的 [1, 3]=3×5=15。

可能的錯法與補救(做完或卡住再看)

可能的錯法(這些是為練習設計的例子,不是真實同學的作答):把 k 算成 60:用「輸出減原值」(90-30=60) 而不是相除,純量倍是乘法;只用一格求出 k 就停止:一格不能發現兩格不一致的情形;把 [1, 3] 寫成 8:以為倍數是加上去。

補救:純量倍的規則是「每一格乘 k」,所以回推 k 要用除法(同位置的輸出÷原值),並選原值不為 0 的格;再用第二格核對。

〔回課文:運算與尺寸規則〕

回到本題題面

練習 6

兩間分店(依序為第 1、2 列)各賣三種飲品(依序為第 1、2、3 行),單位是杯。表 A 是本月的銷量,表 B 是上個月的銷量。工具算 D=A−B 表示「本月比上個月多賣的杯數」。

A(本月)飲品甲飲品乙飲品丙
分店1483520
分店2305241
B(上月)飲品甲飲品乙飲品丙
分店1403825
分店2364441

請手算 D 的 [1, 3] 位置的值,並用一句話說明這個值的正負表示什麼。再算 D 的 [2, 3],說明它表示什麼。

提示階梯(L1→L5)
L1(方向)

減法是 A 的每一格減 B 的同一格。要減的是哪一個減哪一個?題目說 D 表示什麼?

L2(結構)

D=A−B 是「本月減上月」,值為正、為負、為 0 各代表什麼?

L3(方法)

D 的 [i, j]=A 的 [i, j]−B 的 [i, j]。取 [1, 3] 與 [2, 3] 這兩格,依「本月減上月」的次序寫出算式。

L4(設定與中間結果)

A 的 [1, 3]=20,B 的 [1, 3]=25;A 的 [2, 3]=41,B 的 [2, 3]=41。請各自用「A 的值−B 的值」算,再依正負或 0 說明意義。

L5(完整解答)

D 的 [1, 3]=20−25=-5:分店 1 的飲品丙本月比上月少賣 5 杯(負值表示減少)。D 的 [2, 3]=41−41=0:分店 2 的飲品丙兩個月銷量相同。

可能的錯法與補救(做完或卡住再看)

可能的錯法(這些是為練習設計的例子,不是真實同學的作答):寫成 5(正確為 -5):用「大的減小的」,把負號丟掉,於是看不出是增加還是減少;算成 B−A 得到 5 並說「增加 5 杯」:減的次序反了,本題 D 是「本月減上月」;說 [2, 3] 的值 0 代表「沒有資料」:0 是一個合法的元,表示沒有變化。

補救:減法有次序。先寫「D=本月−上月」,再逐格寫「本月的數−上月的數」。看結果時,正=增加、負=減少、0=沒變。

〔回課文:運算與尺寸規則〕

回到本題題面

初練 B:乘法與尺寸

練習 7

兩組客人(依序為第 1、2 列)各買三種文具(依序為第 1、2、3 行),表 N 是購買件數。表 P 是三種文具的單價(元/件),依序為第 1、2、3 列。工具算 C=NP,要得到每組客人各付多少元。

N(件數)筆橡皮擦尺
第1組324
第2組152
P(元/件)單價
筆8
橡皮擦6
尺5

(1)寫出 N、P 的尺寸,判斷 NP 能不能算,若能算,C 的尺寸是多少?(2)請手算 C 的 [2, 1] 位置的值,寫出算式。

提示階梯(L1→L5)
L1(方向)

先寫 N、P 的尺寸,再並排成 (N 的尺寸)(P 的尺寸),看中間兩個數。

L2(結構)

C 的 [2, 1] 要用 N 的哪一整列和 P 的哪一整行?兩者各有幾個數?

L3(方法)

C 的 [i, j] 等於 N 的第 i 列與 P 的第 j 行「對應位置相乘再相加」。第 1 個數配第 1 個、第 2 個配第 2 個、第 3 個配第 3 個。

L4(設定與中間結果)

N 的第 2 列是 [1, 5, 2],P 的第 1 行是 [8, 6, 5](由上而下)。請寫出「1×8+5×6+2×5」這三項各自的積,再相加。結果表的尺寸看外側兩個數。

L5(完整解答)

(2×3)(3×1):中間 3=3,能算,C 是 2×1。C 的 [2, 1]=1×8+5×6+2×5=8+30+10=48,表示第 2 組客人共付 48 元。

可能的錯法與補救(做完或卡住再看)

可能的錯法(這些是為練習設計的例子,不是真實同學的作答):把價格次序配反(1×5+5×6+2×8):算出 51,這是把筆的件數配到尺的單價,配對錯位;只算同位置相乘卻不相加,得到三個數;把第 2 組寫成 8:只加件數,沒有乘單價。

補救:寫算式時,第 k 項一定是「N 的第 i 列第 k 個數」乘「P 的第 j 行第 k 個數」;用文具名稱對照每一項,確認筆配筆、橡皮擦配橡皮擦、尺配尺。

〔回課文:運算與尺寸規則〕

回到本題題面

練習 8

兩個 2×2 的矩陣如下。工具可以分別算 AB 與 BA。

A
21
34
B
05
61

請手算 AB 的 [1, 2] 位置與 BA 的 [1, 2] 位置,各寫出算式。兩個值相同嗎?

提示階梯(L1→L5)
L1(方向)

AB 與 BA 在乘法中,誰放在左邊、誰放在右邊?這會影響取哪一列、哪一行嗎?

L2(結構)

AB 的 [1, 2] 用「左邊矩陣的第 1 列」和「右邊矩陣的第 2 行」。BA 的 [1, 2] 呢?

L3(方法)

AB 的 [1, 2]=A 的第 1 列配 B 的第 2 行;BA 的 [1, 2]=B 的第 1 列配 A 的第 2 行。每個都是兩項相乘再相加。

L4(設定與中間結果)

A 的第 1 列 [2, 1],B 的第 2 行(由上而下)[5, 1];B 的第 1 列 [0, 5],A 的第 2 行(由上而下)[1, 4]。請各寫出兩項的積再相加。

L5(完整解答)

AB 的 [1, 2]=2×5+1×1=11;BA 的 [1, 2]=0×1+5×4=20。兩個值不同(11≠20),可見矩陣乘法的次序不能對調。

可能的錯法與補救(做完或卡住再看)

可能的錯法(這些是為練習設計的例子,不是真實同學的作答):把兩個都算成 11:忽略 BA 要用「B 的列配 A 的行」,仍然用 A 的列配 B 的行;算成 2×5=10:只做同位置相乘,漏掉第二項;以為 AB=BA 而不再計算。

補救:寫算式前先標出「左邊的矩陣取列,右邊的矩陣取行」。用這題的數字可以親眼看到次序不同、結果不同。

〔回課文:邊界與反例〕

回到本題題面

練習 9

兩個旅行團(依序為第 1、2 列)各買三種票(成人票、學生票、兒童票,依序為第 1、2、3 行)的張數,表 N 是張數。表 P 的三列依序是三種票,兩行依序是「票價(單位:百元)」與「贈送點數」。工具算 C=NP。

N(張數)成人票學生票兒童票
第1團421
第2團305
P票價(百元)贈送點數
成人票203
學生票152
兒童票101

(1)C 的尺寸是多少?列與行各表示什麼?(2)請手算 C 的 [2, 2] 位置的值,並說明它的意義。

提示階梯(L1→L5)
L1(方向)

先並排寫出 (N 的尺寸)(P 的尺寸),判斷能不能乘,再用外側兩個數決定 C 的尺寸。

L2(結構)

C 的列由 N 的列決定,C 的行由 P 的行決定。想想列和行各代表什麼。

L3(方法)

C 的 [i, j]=N 的第 i 列配 P 的第 j 行,三項相乘再相加。[2, 2] 要用 N 的第 2 列和 P 的第 2 行。

L4(設定與中間結果)

N 的第 2 列是 [3, 0, 5],P 的第 2 行(由上而下)是 [3, 2, 1]。請寫出 3×3、0×2、5×1 三項再相加,並想想「贈送點數」那一行說明了什麼。

L5(完整解答)

(2×3)(3×2),中間 3=3,能算,C 是 2×2:列是團(第1團、第2團),行是「總票價(百元)」與「總贈送點數」。C 的 [2, 2]=3×3+0×2+5×1=9+0+5=14,表示第 2 團共得到 14 點贈送點數。

可能的錯法與補救(做完或卡住再看)

可能的錯法(這些是為練習設計的例子,不是真實同學的作答):用票價那一行算:3×20+0×15+5×10=110,那是 C 的 [2, 1],不是 [2, 2](行選錯了);用第 1 團的張數 [4, 2, 1] 配贈送點數那一行:4×3+2×2+1×1=17,那是 C 的 [1, 2],不是 [2, 2](列選錯了);把 14 的意義寫成「第 2 團的票價」:沒有對照行標題。

補救:取數前先寫「第 i 列=哪一團,第 j 行=哪一個屬性」,最後把答案寫成「某對象的某屬性是多少」。三項要寫完整,即使其中一項是 0。

〔回課文:完整示範〕

回到本題題面

補救一:列行語意與輸入

練習 10

下面是一張資料表,列是三間店,行是兩種商品的售出量(單位:件)。有人把它輸入工具後,工具回報輸入的矩陣尺寸是 2×3。

原表商品甲商品乙
店1149
店21116
店3712
工具讀到的矩陣(尺寸 2×3)
14117
91612

下列哪一項最能說明發生了什麼事?(甲)輸入正確,尺寸 2×3 就是這張表的尺寸。(乙)輸入時把表的列和行對調了,原表應是 3×2。(丙)少輸入了一格。(丁)有一個數字抄錯。請寫出你選的項目與理由。

提示階梯(L1→L5)
L1(方向)

原表有幾列、幾行?工具讀到的矩陣有幾列、幾行?

L2(結構)

把工具讀到的第 1 列,拿去和原表的某一行比比看。

L3(方法)

原表第 1 行(由上而下)是 14、11、7。工具讀到的第 1 列是什麼?把原表的 6 個數字逐一在工具矩陣中找出來,看它們的位置有什麼規律,再判斷是個別格子出錯,還是有系統的現象。

L4(設定與中間結果)

請把下面兩組並排比較:原表的第 1 行與工具矩陣的第 1 列;原表的第 2 行與工具矩陣的第 2 列。同時數一數原表的 6 個數字有沒有全部出現、有沒有哪一個不一樣。再用你看到的現象逐項檢查四個選項。

L5(完整解答)

答案是(乙)。工具讀到的矩陣,第 1 列是原表的第 1 行,第 2 列是原表的第 2 行,所有數字都在,只是列與行互換了(轉置),所以變成 2×3。若這樣直接拿去運算,列就成了商品、行成了店,和原本「列是對象、行是屬性」的語意相反。正確的輸入應是 3×2,第 1 列 [14, 9]。(甲)忽略了與原表不符;(丙)(丁)數字全都在、也都正確,不是少一格或抄錯。

可能的錯法與補救(做完或卡住再看)

可能的錯法(這些是為練習設計的例子,不是真實同學的作答):選(甲):只看工具有回報尺寸,沒有和原表比對;選(丙):看到尺寸少了一列就以為漏了數字,其實 6 個數字一個不少;選(丁):沒有逐格比對,看不出是整體對調。

補救:輸入後做兩件事:讀回尺寸,與原表的「列數×行數」比對;讀回第 1 列,與原表第 1 列比對。若發現對調,要重新輸入,或明確說明「此處把表轉置,理由是 …」,不可默默對調。

〔回課文:輸入時保持列行語意〕

回到本題題面

練習 11

下面是試算表的畫面(最上面一排的 A、B、C、D 是欄名,最左邊的 1、2、3、4 是列號)。第 1 列和 A 欄是標題,數字放在 B2 到 D4。三組同學(甲、乙、丙,由上而下)在三天(週一、週二、週三,由左而右)的運動次數記為 3×3 矩陣 M,M 只包含數字,不含標題。

ABCD
1(空)週一週二週三
2甲組694
3乙組728
4丙組5103

矩陣 M 的 [2, 3] 位置(第 2 列第 3 行),在試算表中是哪一個儲存格?那一格的值是多少?

提示階梯(L1→L5)
L1(方向)

矩陣 M 的第 1 列第 1 行,是試算表的哪一格?標題占了哪些位置?

L2(結構)

矩陣的位置和試算表的儲存格位置之間,差了幾列、幾欄?

L3(方法)

矩陣 M 的 [1, 1] 在試算表的 B2。所以矩陣的第 i 列對應試算表的第 i+1 列,矩陣的第 j 行對應試算表的第 j+1 欄(欄名要從 A 數起)。

L4(設定與中間結果)

[2, 3]:i=2,試算表的列號是 2+1;j=3,試算表的欄是 3+1=第 4 欄(欄名從 A 起依序數)。請把欄名和列號合起來,並讀出那一格的值。

L5(完整解答)

[2, 3]:試算表的第 3 列(乙組)、第 4 欄 D(週三),儲存格是 D3,值是 8。矩陣的位置 [i, j] 與儲存格位置不同,因為標題占了第 1 列和 A 欄。

可能的錯法與補救(做完或卡住再看)

可能的錯法(這些是為練習設計的例子,不是真實同學的作答):答 C2:直接把 [2, 3] 當成「第 2 列、第 3 欄」(欄 C),沒有考慮標題的位移;答 C3:列有加 1,欄卻沒有;答 D2:欄有加 1,列卻沒有。三種都會讀到不同的數,不是乙組週三。

補救:輸入前先寫出「矩陣 [1, 1] 在 B2」,再推「矩陣 [i, j] 在第 i+1 列、第 j+1 欄」。選取範圍時只選數字,不要選到標題。

〔回課文:輸入時保持列行語意〕

回到本題題面

練習 12

兩張表的兩列都依序是倉庫1、倉庫2,內容是各倉庫的月銷量表,單位為件。表 A 的三行依序是一月、二月、三月;表 B 為了方便查看,三行依序是三月、二月、一月。有人不調整就直接讓工具算 A+B,工具回報成功,印出 C。

A一月二月三月
倉庫1182215
倉庫2201725
B三月二月一月
倉庫112914
倉庫210168
工具輸出:C=A+B(只依位置相加)
303129
303333

(1)兩張表尺寸相同,為什麼這個 C 仍然不能用來表示「各月份兩表合計」?(2)請寫出倉庫 1 在一月的正確合計,以及倉庫 2 在三月的正確合計。

提示階梯(L1→L5)
L1(方向)

工具加的是「同一位置」的兩個數。A 的第 1 行和 B 的第 1 行,是同一個月份嗎?

L2(結構)

加法的前提除了尺寸相同,還要看相同位置上的數是不是「同一個意義」。

L3(方法)

先把 B 的行次序調成和 A 相同(一月、二月、三月),也就是把 B 每一列左右顛倒,再依位置相加;或直接找出同月份的兩個數相加。

L4(設定與中間結果)

調整後 B 的第 1 列是 [14, 9, 12],第 2 列是 [8, 16, 10]。倉庫 1 的一月是 A 的 [1, 1]=18 加調整後 B 的 [1, 1];倉庫 2 的三月是 A 的 [2, 3]=25 加調整後 B 的 [2, 3]。請完成兩個加法。

L5(完整解答)

(1)工具只對位置相加:C 的 [1, 1]=18+12=30 把一月和三月加在一起,沒有意義;尺寸相同只保證能算,不保證意義正確。(2)先把 B 的月份調成一月、二月、三月,倉庫 1 的一月=18+14=32,倉庫 2 的三月=25+10=35。

可能的錯法與補救(做完或卡住再看)

可能的錯法(這些是為練習設計的例子,不是真實同學的作答):直接答工具的 30 與 33:以為尺寸相同、工具成功就代表對;修正了倉庫 1 的一月之後,倉庫 2 的三月仍沿用工具的 33:只修正了抽查的那一格,沒有想到其他位置也受同樣的錯位影響(正確為 35)。

補救:加法前先逐行核對「行標題的次序是否一樣」。不一樣就要先調整次序,並說明為什麼調。調整後抽查一格,確認是同一個月份。

〔回課文:邊界與反例〕

回到本題題面

補救二:核對與找錯

練習 13

某人想用試算表算矩陣乘積 AB,對兩個範圍直接用星號「*」相乘,印出 C。

A
31
24
B
52
13
工具輸出:A * B
152
212

請手算「矩陣乘積 AB 的 [1, 1] 位置」,與輸出的 [1, 1] 比較。工具輸出的 [1, 1] 是怎麼得到的?這個輸出是 AB 嗎?

提示階梯(L1→L5)
L1(方向)

矩陣乘積 AB 的 [1, 1] 要用 A 的哪一列、B 的哪一行?用了幾項?

L2(結構)

輸出的 [1, 1] 是 15。A 的 [1, 1] 與 B 的 [1, 1] 是什麼數?

L3(方法)

AB 的 [1, 1]=A 的第 1 列配 B 的第 1 行,對應相乘再加。再看看 15 是怎麼由 A、B 的哪些數得到的,是一項還是兩項?

L4(設定與中間結果)

A 的第 1 列 [3, 1],B 的第 1 行(由上而下)[5, 1]。請算 3×5+1×1,把結果和輸出的 15 比較;再想想 15 是用到 A 的第 1 列、B 的第 1 行中的幾對數得到的。最後看輸出的 [1, 2] 是 2,和 A 的 [1, 2]、B 的 [1, 2] 比較。

L5(完整解答)

AB 的 [1, 1]=3×5+1×1=16,輸出是 15,不同。15=3×5 只是 A 的 [1, 1] 乘 B 的 [1, 1](同位置相乘),輸出的 [1, 2]=1×2=2 也是同位置相乘。所以這個輸出不是矩陣乘積 AB,而是逐格相乘的表。要做矩陣乘法,要用工具中矩陣乘法的指令(例如試算表的 MMULT,程式語言的 @ 或 dot)。

可能的錯法與補救(做完或卡住再看)

可能的錯法(這些是為練習設計的例子,不是真實同學的作答):說「15 是對的」:只看有輸出就相信工具;自己算成 3×5=15:漏掉第二項(1×1),結果剛好和工具的錯誤輸出一樣,於是誤以為工具正確;說「工具算錯了」:工具忠實地做了「*」指令的逐格相乘,錯的是選了指令。

補救:使用工具時,先確認指令做的是哪一種運算。抽查時,在乘法中手算一格要寫出「列配行,多項相加」的完整算式;逐格相乘是另一種運算,不是這一課的矩陣乘法。

〔回課文:運算與尺寸規則〕

回到本題題面

練習 14

工具有一個印出的表 C,你懷疑它是「同位置相乘」(逐格相乘)而不是矩陣乘積 AB。你只打算手算 C 的一格來分辨。

A
20
34
B
51
02

下列哪一格的手算,無法分辨這兩種可能?(甲)[1, 1];(乙)[1, 2];(丙)[2, 1];(丁)[2, 2]。請寫出你的理由。

提示階梯(L1→L5)
L1(方向)

兩種運算在某一格的結果有可能相同。你要找的是「兩種結果相同」的那一格。

L2(結構)

分別算每一格在「逐格相乘」與「矩陣乘積」的值,看看哪一格兩個值一樣。

L3(方法)

逐格相乘:C 的 [i, j]=A 的 [i, j]×B 的 [i, j]。矩陣乘積:C 的 [i, j]=A 的第 i 列配 B 的第 j 行,兩項相加。

L4(設定與中間結果)

逐格相乘的四格:[2×5, 0×1; 3×0, 4×2]。矩陣乘積的 [1, 1]=2×5+0×0;[1, 2]=2×1+0×2;[2, 1]=3×5+4×0;[2, 2]=3×1+4×2。請算出八個數,逐格比較。

L5(完整解答)

逐格相乘:[[10, 0],[0, 8]];矩陣乘積:[[10, 2],[15, 11]]。只有 [1, 1] 兩者都是 10,所以手算 [1, 1] 無法分辨;[1, 2](0 與 2)、[2, 1](0 與 15)、[2, 2](8 與 11)都能分辨。答案:(甲)。教訓:抽查的格要選「兩種可能會給出不同結果」的格,而且一格相符不能保證整張都對。

可能的錯法與補救(做完或卡住再看)

可能的錯法(這些是為練習設計的例子,不是真實同學的作答):選(乙)(丙)或(丁):其實那三格的兩種結果都不同,手算那幾格正好能分辨,題目問的是「無法分辨」的那一格;以為有 0 的格比較簡單所以先算它,卻沒有想過它可能讓兩種做法碰巧相同;看到 [1, 1] 相符就宣布整張表正確:沒有想過這一格是否會被兩種運算同時滿足。

補救:選抽查格前,先問「如果工具做錯了,這一格會不會露出馬腳?」。有 0 的位置容易讓不同做法得到相同結果,最好換一列、換一行再多抽一格。

〔回課文:手算抽查〕

回到本題題面

練習 15

兩間店(依序為第 1、2 列)賣三種商品(依序為第 1、2、3 行),表 A 是售出件數。表 B 的三列依序是三種商品,兩行依序是「單價(元)」與「單件成本(元)」。有人想得到「每間店的總售價與總成本」,結果工具印出的表是 3 列 3 行。

A(件數)商品甲商品乙商品丙
店1312
店2045
B單價單件成本
商品甲26
商品乙13
商品丙40
工具輸出(3 列 3 行)
62634
31317
1248

(1)輸出的尺寸為什麼不對?工具實際算的是哪一個乘積?(2)正確的乘積應該是幾×幾?請手算它的 [1, 2] 位置的值,並說明意義。

提示階梯(L1→L5)
L1(方向)

想要「每間店」的合計,結果表的列應該是什麼?行應該是什麼?它的尺寸應該是幾乘幾?

L2(結構)

A 是 2×3,B 是 3×2。AB 和 BA 的尺寸各是多少?

L3(方法)

把 A、B 的尺寸並排寫出 AB 與 BA 兩種次序,各取外側兩個數得到各自的結果尺寸,再和工具印出的 3×3 比較:工具把哪個矩陣放在左邊?

L4(設定與中間結果)

AB 的 [1, 2]=A 的第 1 列 [3, 1, 2] 配 B 的第 2 行(由上而下)[6, 3, 0]。請寫出 3×6、1×3、2×0 三項再相加,並說明意義。

L5(完整解答)

3×3 是 BA 的尺寸,表示工具算成了 BA(B 放在左邊),也可以從輸出的 [1, 1]=2×3+6×0=6 看出(B 的第 1 列配 A 的第 1 行)。要得到店×(售價、成本),應算 AB,尺寸 2×2。AB 的 [1, 2]=3×6+1×3+2×0=18+3+0=21,意義是店 1 的總成本為 21 元。

可能的錯法與補救(做完或卡住再看)

可能的錯法(這些是為練習設計的例子,不是真實同學的作答):說「輸出尺寸沒錯」:沒有先預測想要的尺寸;寫成 26:那是 BA 的 [1, 2](B 的第 1 列配 A 的第 2 行),B 放在前面時,算出來的不是每間店的合計

補救:先寫出想要的結果表是「什麼對什麼」,再決定誰放左邊、誰放右邊。要「店×數值」,左邊就是「店×商品」,右邊就是「商品×數值」。

〔回課文:運算與尺寸規則〕

回到本題題面

遷移:換個情境與工具

練習 16

下面是一段程式。程式語言計算位置時,第一個位置是 0:C[0][0] 是第 1 列第 1 行,C[0][1] 是第 1 列第 2 行。「A @ B」做的是矩陣乘法(A、B 是 numpy 的矩陣,程式第一行先載入 numpy)。

import numpy as np
A = np.array([[2, 1], [0, 3], [4, 5]])
B = np.array([[1, 2, 0], [3, 1, 2]])
C = A @ B        # 矩陣乘法
print(C[2][0])

(1)A、B 的尺寸各是多少?C 的尺寸是多少?(2)程式印出的 C[2][0] 相當於矩陣 C 的哪一個位置 [i, j]?(3)請手算它的值。

提示階梯(L1→L5)
L1(方向)

程式的位置從 0 開始數,數學的位置 [i, j] 從 1 開始數。兩者相差多少?

L2(結構)

先寫出 A、B 的列數與行數,判斷 A @ B 能不能算,再決定 C 的尺寸。

L3(方法)

C[2][0] 的 2 是列的位置、0 是行的位置。轉成 [i, j] 要各加 1。再用 A 的那一列配 B 的那一行,對應相乘後相加。

L4(設定與中間結果)

先把 C[2][0] 轉成 [i, j]。然後在 A 中找第 i 列,在 B 中找第 j 行(由上而下寫成一排),把這一列和這一行的數對應相乘再相加。A、B 的尺寸請照 L2 先寫出來。

L5(完整解答)

A 是 3×2,B 是 2×3,(3×2)(2×3),中間 2=2,C 是 3×3。C[2][0] 相當於 [3, 1]。值=4×1+5×3=4+15=19。

可能的錯法與補救(做完或卡住再看)

可能的錯法(這些是為練習設計的例子,不是真實同學的作答):把 C[2][0] 當成 [2, 0]:矩陣沒有第 0 行;當成 [2, 1] 並算 A 第 2 列 [0, 3] 配 B 第 1 行 [1, 3] 得到 9:只把行加了 1,列沒加;把尺寸寫成 2×2 :用內側而不是外側。

補救:遇到程式的索引,固定先寫「程式位置+1=數學位置」。在紙上畫出 3×3 的格子,把 C[0][0] 標成 [1, 1],再找 C[2][0]。

〔回課文:矩陣資料表的約定〕

回到本題題面

練習 17

兩間店(店1、店2,依序為第 1、2 列)賣三種商品(依序為第 1、2、3 行),表 S 是售出件數。價目表 p 為了方便列印,把三種商品排成一列,單價依序是 10、20、15 元。要算每間店的總收入。

S(件數)商品甲商品乙商品丙
店1735
店2462
p商品甲商品乙商品丙
單價(元)102015

(1)S 是 2×3,p 是 1×3,直接 S 乘 p 為什麼不行?(2)要讓乘法可行,應該對 p 做什麼?請說明這樣做的理由(不是為了好看)。(3)店2 的總收入是多少元?

提示階梯(L1→L5)
L1(方向)

先並排寫出 (S 的尺寸)(p 的尺寸),看中間兩個數。

L2(結構)

S 的每一列有三個數,分別是三種商品的件數。要和它配對的單價,應該怎麼排?

L3(方法)

S 的行是商品甲、乙、丙。乘法要求左邊矩陣的行與右邊矩陣的列配對,所以右邊矩陣的「列」也要是商品。p 現在的列和行各是什麼?要怎麼改排,才能讓商品出現在列的方向上?

L4(設定與中間結果)

把三個單價改排成一行(由上而下仍依甲、乙、丙的次序 10、20、15)後,再檢查一次尺寸。店2 的總收入用 S 的第 2 列 [4, 6, 2] 配這一行:每種商品的件數乘它的單價,再把三項相加。

L5(完整解答)

(1)(2×3)(1×3):中間 3 與 1 不相等,不能乘。(2)把 p 轉置成 3×1(列與行對調),(2×3)(3×1) 中間 3=3,可以乘,結果是 2×1。理由是:S 的行是商品,轉置後 p 的列也是商品,同一種商品的件數與單價才會配對。轉置不是隨意對調,它讓資料的語意一一對上。(3)店2 的總收入=4×10+6×20+2×15=40+120+30=190 元(店1 為 205 元)。

可能的錯法與補救(做完或卡住再看)

可能的錯法(這些是為練習設計的例子,不是真實同學的作答):把 p 不轉置、硬把 2×3 乘 1×3:工具會報錯,或使用者改用逐格相乘,不是題目要的合計;轉置後把單價配錯次序,例如店2 算成 4×15+6×20+2×10=200;只算店1 的 205 當答案:看錯對象。

補救:用「商品」這個語意來對:左邊矩陣的行是商品,右邊矩陣的列也必須是商品。若不是,才考慮轉置,並寫下轉置的理由。沒有理由的轉置,不要做。

〔回課文:轉置:有脈絡才做〕

回到本題題面

練習 18

A、B 是兩張 2×3 的表。工具對它們做了下面三個式子之一,印出 C。

A
462
357
B
123
204
工具輸出:C
22-4
-15-1

三個式子:(甲)2A−B;(乙)A−2B;(丙)2(A−B)。請只選一格(例如 [1, 1])手算三個式子在該格的值,判斷工具做的是哪一個,再選另一格核對你的判斷。

提示階梯(L1→L5)
L1(方向)

三個式子在同一格各會得到什麼值?要分辨,需要它們在那一格的值各不相同。

L2(結構)

選 [1, 1],分別把 A 的 [1, 1] 與 B 的 [1, 1] 代進三個式子。

L3(方法)

(甲)2A−B 的 [1, 1]=2×A 的 [1, 1]−B 的 [1, 1];(乙)A−2B 的 [1, 1]=A 的 [1, 1]−2×B 的 [1, 1];(丙)2(A−B) 的 [1, 1]=2×(A 的 [1, 1]−B 的 [1, 1])。

L4(設定與中間結果)

A 的 [1, 1]=4,B 的 [1, 1]=1。請算出三個式子在 [1, 1] 的值,與輸出的 [1, 1]=2 比較。再用第二格 [2, 3](A 是 7,B 是 4,輸出是 -1)核對你選的式子。

L5(完整解答)

[1, 1]:(甲)2×4−1=7;(乙)4−2×1=2;(丙)2×(4−1)=6。輸出是 2,所以是(乙)A−2B。核對 [2, 3]:7−2×4=-1,與輸出的 -1 相符。(若只看 [1, 1] 沒有第二格的核對,仍可能是偶然。)

可能的錯法與補救(做完或卡住再看)

可能的錯法(這些是為練習設計的例子,不是真實同學的作答):選(甲):把 2 乘在 A 上,[1, 1] 得到 7,與輸出不同;選(丙):先減再乘 2,[1, 1] 得到 6,與輸出不同;只看一格就宣布,而不用第二格核對。

補救:純量倍乘在哪張表上,要看式子裡的係數貼在哪個矩陣旁邊。逐格代入時,先算倍數那一項,再做加減;用兩格核對可以降低偶然相符的機會。

〔回課文:手算抽查〕

回到本題題面