矩阵乘法运算定律(矩阵的乘法运算)

矩阵的乘法运算

题目要求:有两个矩阵A1和A2,分别如下:

矩阵乘法运算定律(矩阵的乘法运算)(1)

A1

矩阵乘法运算定律(矩阵的乘法运算)(2)

A2

编写一个程序,实现这两个矩阵的乘积。

题目分析:

从上面的计算法则中不难看出,要计算两个矩阵的乘积需要三重循环。即:A矩阵的第m行和B矩阵的第n列各元素相乘,得到cmn。

A矩阵的第m行分别和B矩阵的第1~k列相乘,得到cm1,cm2...cmk。

A矩阵的第1~i行分别与矩阵的n列相乘,得到最终结果。

因此,解决矩阵相乘的问题的一种比较简单的方法就是用三重循环嵌套语句。

#include <stdio.h> int main(void) { int A[2][3]={{1,2,3},{4,5,6}}; /*初始化矩阵A*/ int B[3][4]={{1,0,2,3},{4,1,5,6},{6,8,9,0}}; /*初始化矩阵B*/ int C[2][4]={{0,0,0,0},{0,0,0,0}}; int i,j,k; for(i=0;i<2;i ) for(j=0;j<4;j ) for(k=0;k<3;k ) C[i][j]=C[i][j] A[i][k]*B[k][j] ; printf("The result is\n"); for(i=0;i<2;i ) { for(j=0;j<4;j ) printf("%d ",C[i][j]); printf("\n"); } getche(); return 0; }

运行结果:

矩阵乘法运算定律(矩阵的乘法运算)(3)

巧用位运算

题目要求:

用位运算操作实现两个整数的交换。例如x1=5,x2=10;交换后x1=10,x2=5。

题目分析:

一般情况下要实现两个变量a,b的内容交换,多采用设置一个临时变量t,通过

t=a;

a=b;

b=t;

的方法实现。其实还有一种更好更有效的方法实现这个功能,就是采用位运算的方法。

具体的作法是:

a=a^b;

b=b^a;

a=a^b;

其中^为安位异或运算。这样同样可以达到a、b两值互换的目的。

#include "stdio.h" main() { int a,b; a=5; b=10; printf("a=%d,b=%d\n",a,b); a=a^b; b=b^a; a=a^b; printf("a=%d,b=%d\n",a,b); getche(); }

运行结果:

矩阵乘法运算定律(矩阵的乘法运算)(4)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页