矩阵乘法是一种高效的算法可以把一些一维递推优化到log( n ),还可以求路径方案等,所以更是是一种应用性极强的算法。矩阵,是线性代数中的基本概念之一。一个m×n的矩阵就是m×n个数排成m行n列的一个数阵。由于它把许多数据紧凑的集中到了一起,所以有时候可以简便地表示一些复杂的模型。矩阵乘法看起来很奇怪,但实际上非常有用,应用也十分广泛。

只有当矩阵A的列数与矩阵B的行数相等时A×B才有意义。一个m×n的矩阵a(m,n)左乘一个n×p的矩阵b(n,p),会得到一个m×p的矩阵c(m,p),满足矩阵乘法满足结合律,但不满足交换律 一般的矩乘要结合快速幂才有效果。(基本上所有矩阵乘法都要用到快速幂的)   在计算机中,一个矩阵实际上就是一个二维数组。一个n行m列的矩阵与一个m行p列的矩阵可以相乘,得到的结果是一个n行p列的矩阵,其中的第i行第j列位置上的数为第一个矩阵第i行上的m个数与第二个矩阵第j列上的m个数对应相乘后所得的m个乘积之和。比如,下面的算式表示一个2行2列的矩阵乘以2行3列的矩阵,其结果是一个2行3列的矩阵。

其中,结果矩阵的那个4(结果矩阵中第二(i)行第二(j)列)

=

2(第一个矩阵第二(i)行第一列)*2(第二个矩阵中第一行第二(j)列)   +   0(第一个矩阵第二(i)行第二列)*1(第二个矩阵中第二行第二(j)列)

        static void Main(string[] args)
{ //定义三个数组,分别存储矩阵A,B,C
float[,] a = new float[,];
float[,] b = new float[,];
float[,] c = new float[,]; int n, m, mB, p; float[,] s = new float[,];
//矩阵A行数m1,列数n1
n = ;
m = ;
//矩阵B行数m2,列数n2
mB = ;
p = ; if (m != mB)
{
//判断是否可以相乘
Console.WriteLine("不可以相乘!!!");
return;
} a[, ] = ;
a[, ] = ;
a[, ] = ; a[, ] = ;
a[, ] = ;
a[, ] = ; b[, ] = ;
b[, ] = ; b[, ] = ;
b[, ] = ; b[, ] = ;
b[, ] = ; Console.WriteLine("矩阵A:\n");
for (var i = ; i <= n; i++)
{
for (var j = ; j <= m; j++) {
Console.Write("{0}-", a[i, j]);
if (j == m)Console.Write("\n");
}
} Console.WriteLine("矩阵B:\n");
for (var i = ; i <= m; i++)
{
for (var j = ; j <= p; j++)
{
Console.Write("{0}-",b[i, j]);
if (j == p)Console.Write("\n");
} }
Console.WriteLine("矩阵C=A*B:\n");
for (var i = ; i <= n; i++)
{
for (var j = ; j <= p; j++)
{
for (var k = ; k <= m; k++)
{ s[i,j] = s[i,j] + a[i,k]*b[k,j];
}
c[i,j] = s[i,j];
Console.Write("{0}-",c[i,j]);
if (j == p) Console.Write("\n");
}
} Console.Read();
}

C# 矩阵乘法实现的更多相关文章

  1. *HDU2254 矩阵乘法

    奥运 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submissi ...

  2. *HDU 1757 矩阵乘法

    A Simple Math Problem Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  3. CH Round #30 摆花[矩阵乘法]

    摆花 CH Round #30 - 清明欢乐赛 背景及描述 艺术馆门前将摆出许多花,一共有n个位置排成一排,每个位置可以摆花也可以不摆花.有些花如果摆在相邻的位置(隔着一个空的位置不算相邻),就不好看 ...

  4. POJ3070 Fibonacci[矩阵乘法]

    Fibonacci Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 13677   Accepted: 9697 Descri ...

  5. bzoj 2738 矩阵乘法

    其实这题跟矩阵乘法没有任何卵关系,直接整体二分,用二维树状数组维护(刚刚学会>_<),复杂度好像有点爆炸(好像有十几亿不知道是不是算错了),但我们不能怂啊23333. #include&l ...

  6. 【BZOJ-2476】战场的数目 矩阵乘法 + 递推

    2476: 战场的数目 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 58  Solved: 38[Submit][Status][Discuss] D ...

  7. 【BZOJ-1898】Swamp 沼泽鳄鱼 矩阵乘法

    1898: [Zjoi2005]Swamp 沼泽鳄鱼 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1012  Solved: 566[Submit][S ...

  8. 【Codeforces718C】Sasha and Array 线段树 + 矩阵乘法

    C. Sasha and Array time limit per test:5 seconds memory limit per test:256 megabytes input:standard ...

  9. 矩阵乘法的MapReduce实现

    对于任意矩阵M和N,若矩阵M的列数等于矩阵N的行数,则记M和N的乘积为P=M*N,其中mik 记做矩阵M的第i行和第k列,nkj记做矩阵N的第k行和第j列,则矩阵P中,第i行第j列的元素可表示为公式( ...

  10. 矩阵乘法&矩阵快速幂&矩阵快速幂解决线性递推式

    矩阵乘法,顾名思义矩阵与矩阵相乘, 两矩阵可相乘的前提:第一个矩阵的行与第二个矩阵的列相等 相乘原则: a b     *     A B   =   a*A+b*C  a*c+b*D c d     ...

随机推荐

  1. Xml+Xslt测试工具

    下载地址:http://download.csdn.net/detail/a497785609/5791359 说明:下载后,修改下Xslt部分的头部:<xsl:stylesheet versi ...

  2. Android Service演义

    摘要: 本文基于Android 5.1代码,介绍了Android Service的运作机理.按理说,网上此类文章已经很多了,本不需我再赘述.但每个人理解技术的方式多少会有所不同,我多写一篇自己理解的s ...

  3. log4j 具体解说(不能再具体了)

    日志是应用软件中必不可少的部分.Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录.在apache站点:jakarta.apache.org/log4j 能够免费下载到Log ...

  4. CCNA2.0笔记_VLSM

    子网化:把一个大的主类网段,通过借位的方式逻辑划分多个子网段,应用于多个广播域: 做子网划分的时候,子网掩码最多只能到30位,不能再多划(因为至少要保留4个地址,即2个主机位) FLSM(定长子网掩码 ...

  5. iOS 新手引导页图片适配及其尺寸大全

    早期新手引导页只需要几张图片就可以解决了,随着屏幕尺寸的的越来越多,新手引导页的尺寸适配起来越来越麻烦,否则就会出现尺寸不匹配,图片被拉伸的情况 目前应该是有2种方法来解决这个问题 方法1: 根据每款 ...

  6. Jenkins ssh 部署war到tomcat 虚拟目录

    1>完成Jenkins服务环境的搭建,此处不再详述,不会的童鞋可参考下面的博客 http://www.cnblogs.com/zz0412/tag/jenkins/ 2>安装Publish ...

  7. Flow construction SGU - 176 有源汇有上下界最小流 二分法和回流法

    /** 题目:Flow construction SGU - 176 链接:https://vjudge.net/problem/SGU-176 题意: 有源汇有上下界的最小流. 给定n个点,m个管道 ...

  8. Storm实战

    需求: spout输出一些手机品牌小写名称,第一个bolt将手机名称转成大写,第二个bolt在手机名称的后面再追加上时间. 项目目录: 导入相关的jar包. RandomWordSpout.java: ...

  9. HDFS的HA机制

    传统的HDFS机制如下图所示: 也就是存在一个NameNode,一个SecondaryNameNode,然后若干个DataNode.这样的机制虽然元数据的可靠性得到了保证(靠edits,fsimage ...

  10. Java 使用 HttpClient调用https 最新源码 JDK7+ apache4.3+

    在项目使用https方式调用别人服务的时候,以前要写很多的代码,现在框架封装了很多,所以不用再写那么多了. 网上看了一下,都是很老的版本,用过时的DefaultHttpClient. 以spring为 ...