![]() |
|
||||||||||||||
| | 网站首页 | 数据库教程 | web编程 | 服务器 | 程序设计 | | ||
|
||
|
|||||||
| 数据结构题集--数组(二维数组) | |||||||
作者:佚名 文章来源:不详 点击数: 更新时间:2007-8-1 ![]() |
|||||||
|
设计一个矩阵相乘的程序
假设有 1 5 7 3 3 9 1 4 1 4 1 2 8 7 3 2 7 2 5 6 0 3 1 9 9 7 4 7 8 0 3 2 5 4 求出A*B的矩阵 程序构思: 我们所知的矩阵乘法运算的算式如下: Cij = Aik X Bkj 的k从1到 n 的和,那么可以用一个3层循环来运算此算式: C(1,1)=A(1,1)*B(1,1)+A(1,2)*B(2,1)+A(1,3)*B(3,1)+A(1,4)*B(4,1) =(1*3)+(5*5)+(7*3)+(3*9) =3+25+21+27 =76 同理 C(1,2)=A(1,1)*B(1,2)+A(1,2)*B(2,2)+A(1,3)*B(3,2)+A(1,4)*B(2,2) =(1*9)+(5*6)+(7*2)+(3*7) =9+30+14+21 =74 依此类推,我们可以求得矩阵A与矩阵B的矩阵乘积。
void main(void) { int matrixa[5][4]={1,5,7,3, 3,6,3,9, 1,2,8,7, 0,3,1,9, 3,2,5,4}; int matrixb[4][6]={3,9,1,4,1,4, 5,6,7,9,0,3, 3,2,7,2,5,6, 9,7,4,7,8,0}; int matrixc[5][6]; int i,j,k; for(i=0;i<5;i++) for(j=0;j<6;j++) { matrixc[i][j]=0; for(k=0;k<4;k++) matrixc[i][j]+=matrixa[i][k]*matrixb[k][j]; }
|
|||||||
| 文章录入:admin 责任编辑:admin | |||||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||||
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 网站地图 | 管理登录 | | |||
|