矩阵乘法是一种高效的算法可以把一些一维递推优化到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. centos(7.0) 上 crontab 计划任务

    yum install vixie-cron yum install crontabs /bin/systemctl restart crond.service  #启动服务 /bin/systemc ...

  2. Springboot接收参数

    接收参数有三个方法. 1.接收id的方法: @RestController public class ControllerTest { //在这里读取配置文件 @Autowired private T ...

  3. mysql only_full_group_by问题

    我的mysql出现了only_full_group_by问题,网上一堆处理方案! 主要两种 一种修改配置表my.ini 另一种通过指令,屏蔽当前链接的only_full_group_by报错!我想永久 ...

  4. Reveal使用教程

    Reveal使用教程 Reveal是用于透视程序整体结构的一个软件,软件收费89美刀,试用期30天,不过好在有破解版,无需担心花钱的问题​ 在然后呢,软件在哪下,可以在我的github上下载到破解版本 ...

  5. 抓取网页数据C#文件

    using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mv ...

  6. mysql 求季度产量平均值

    表名:product 表结构: 表数据: 如果使用日期查询的话:sql: SELECT QUARTER(create_time) AS '季度',AVG(seller) AS '平均值' FROM p ...

  7. java代理模式及动态代理类

     1.      代理模式 代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问.在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用 ...

  8. powerDesigner建表时选择不同数据库类型

    l  使用powerDesigner创建表模型的时候可选择数据库类型 如图设置为mysql:

  9. Flex上传文件Java端解决中文乱码问题

    1.Flex端进行编码 public function encodeStr(str:String, charSet:String):String { var result:String =" ...

  10. Android WebView 笔记

    WebView(网络视图)能载入显示载入网页.将网页内容载入到手机client,它使用了WebKit渲染引擎载入显示网页,实现WebView有下面方法: 首先要实如今手机client显示必需要求注冊一 ...