問:為啥數組c是3行5列
答:根據矩陣乘法定義,壹個m╳r的矩陣A和壹個r╳n的矩陣B的乘積矩陣C是壹個m╳n矩陣
問:這裏是怎麽變過來的 也就是我還是不明白數組a*數組b是什麽樣的進行的
答:根據矩陣乘法定義,矩陣C中第i行第j列位置的元素cij等於矩A陣中第i行元素ai1,ai2,...,air與矩陣B中第j列元素b1j,b2j,...,brj各對應元素的乘積,即cij=ai1bij+ai2b2j+...+airbrj
註意樓主的題中,m=3,r=4,n=5,i=0,1,2,3;j=0,1,2,3,4
這就表現在這裏: for(k=0;k<4;k++)
c[i][j]+=a[i][k]*b[k][j]; 這裏表示的是C中第i+1行第j+1列的元素
問題2:
問:中間用K值去代替,原因是什麽 是因為這樣更簡便麽 ?
答:中間的k是為了表示以下r項和ai1bij+ai2b2j+...+airbrj中的第k+1項aikbkj,對k循環求和就可以得到cij
問:如果是的話那下次兩個值不同該怎麽辦?
答:矩陣乘法定義規定cij=ai1bij+ai2b2j+...+airbrj,因此下次兩個值也壹定是壹樣的,若不壹樣則A與B不可乘