矩阵乘法(Strassen算法/C++实现)

news/2024/7/5 5:56:27 标签: 矩阵乘法

问题:请编程实现矩阵乘法,并考虑当矩阵规模较大时的优化方法。

思路一:暴力解法

直接根据数学中矩阵乘法的计算公式:

 

计算目标矩阵中各个元素的值。

//思路一:暴力解法
//矩阵乘法,3个for循环搞定   
void Mul(int** matrixA, int** matrixB, int** matrixC)   
{   
    for(int i = 0; i < 2; ++i)    
    {   
        for(int j = 0; j < 2; ++j)    
        {   
            matrixC[i][j] = 0;   
            for(int k = 0; k < 2; ++k)    
            {   
                matrixC[i][j] += matrixA[i][k] * matrixB[k][j];   
            }   
        }   
    }   
} 

思路二:Strassen算法

详情请看:http://www.mamicode.com/info-detail-673908.html

总结:矩阵乘法一般意义上还是选择:朴素的方法(暴力解法),只有当矩阵阶数很大(稠密)时,才会选择Strassen算法。


http://www.niftyadmin.cn/n/634843.html

相关文章

Why MVC is Better?(翻译)

&#xff08;本文翻译自CodeProject上的一篇关于ASP.NET MVC的文章&#xff0c;原文地址&#xff1a;http://www.codeproject.com/Articles/821275/Webforms-vs-MVC-and-Why-MVC-is-better。注意文章有些地方出现的”MVC“术语指”ASP.NET MVC“&#xff0c;比如本文标题。本文…

SQL 游标的使用

我们都知道在关系数据库中&#xff0c;都是面向集合进行查询的&#xff0c;而游标却是化整为零&#xff0c;是按行查询的&#xff0c;举个例子比如说之前那个壕买了99台苹果6&#xff0c;他可以一次性就买了99台&#xff0c;这正是我们平常使用SQL的方式&#xff0c;他也可以分…

完美洗牌算法(2013年UC校招笔试、2016阿里实习生笔试)

题目详情&#xff1a;有个长度为2n的数组{a1,a2,a3,...,an,b1,b2,b3,...,bn}&#xff0c;希望排序后{a1,b1,a2,b2,....,an,bn}&#xff0c;要求时间复杂度O(n)&#xff0c;空间复杂度0(1)的解法。 思路一&#xff1a;位置置换pefect_shuffle1算法 数组下标&#xff1a;1 2…

图像特征点匹配(视频质量诊断、画面抖动检测)

在视频质量诊断中&#xff0c;我们通常会涉及到“画面抖动”的检测。在此过程中就需要在视频中隔N帧取一帧图像&#xff0c;然后在获取的两帧图像上找出特征点&#xff0c;并进行相应的匹配。 当然了&#xff0c;这一过程中会出现很多的问题&#xff0c;例如&#xff1a;特征点…

MyEclipse下安装FreeMark插件

现在大多人人喜欢用FreeMark模板。但是这个模板在myeclipse或者是eclipse下却是不能只能提示&#xff0c;一大堆只是没有颜色区分的显示在哪里。万能天国总是有办法。 点我去官网下载(比较慢)我的CSDN资源下载(速度快 推荐 已配置好) 配置 如果你选择的是我的CSDN 资源下载直接…

WebForm运行的部分原理

首先WebForm即web窗体包含两个页面文件&#xff1a;aspx前台页面和cs后台页面文件。通过反编译器Reflector我们可以看到在Dll程序集中前台页面和后台页面分别生成了两个不同的类&#xff0c;而且前台页面aspx类继承于后台页面CS类。下面这个登陆的小例子是我们用的最多的: 在as…

从摄像头中读取图像 OpenCV

//(一) 从摄像头中读取图像并保存成视频 //图像类型 IplImage* #include "cv.h" #include "highgui.h" int main( int argc, char** argv ) { CvCapture* capture 0; IplImage* frame 0; capture cvCaptureFromCAM( 0 ); int fps25; //捕捉帧率 //do…

oracle数据库中,数据表无法执行数据操作语句,提示记录已被锁住

在oracle数据库中&#xff0c;数据表无法执行update语句&#xff0c;原因是该数据表已被其他用户锁定&#xff0c;解决方法如下 首先&#xff0c;执行如下sql语句&#xff1a; <span style"font-size:24px;">select * from v$session t1, v$locked_object t2 …