C语言 · 矩阵相乘 · 算法提高

算法提高 矩阵相乘

时间限制:1.0s   内存限制:256.0MB

问题描述

  小明最近在为线性代数而头疼,线性代数确实很抽象(也很无聊),可惜他的老师正在讲这矩阵乘法这一段内容。
  当然,小明上课打瞌睡也没问题,但线性代数的习题可是很可怕的。
  小明希望你来帮他完成这个任务。

  现在给你一个ai行aj列的矩阵和一个bi行bj列的矩阵,
  要你求出他们相乘的积(当然也是矩阵)。
  (输入数据保证aj=bi,不需要判断)

输入格式

  输入文件共有ai+bi+2行,并且输入的所有数为整数(long long范围内)。
  第1行:ai 和 aj
  第2~ai+2行:矩阵a的所有元素
  第ai+3行:bi 和 bj
  第ai+3~ai+bi+3行:矩阵b的所有元素

输出格式

  输出矩阵a和矩阵b的积(矩阵c)
  (ai行bj列)

样例输入

2 2
12 23
45 56
2 2
78 89
45 56

样例输出

1971 2356
6030 7141

时间: 2024-12-27 18:00:47

C语言 · 矩阵相乘 · 算法提高的相关文章

稀疏矩阵的三元组顺序表存储及矩阵相乘算法小结

稀疏矩阵的三元组顺序表存储及矩阵相乘算法小结 巧若拙(欢迎转载,但请注明出处:http://blog.csdn.net/qiaoruozhuo) 一:稀疏矩阵的三元组顺序表数据结构 typedef int ElemType; typedef struct { intx, y;  //该非零元素的行下标和列下标 ElemTypee; //该非零元素的值 } Triple; typedef struct { Tripledata[MAXSIZE]; //非零元素三元组顺序表 intmu, nu, t

C语言 · 矩阵乘法 · 算法训练

问题描述 给定一个N阶矩阵A,输出A的M次幂(M是非负整数) 例如: A = 1 2 3 4 A的2次幂 7 10 15 22 输入格式 第一行是一个正整数N.M(1<=N<=30, 0<=M<=5),表示矩阵A的阶数和要求的幂数 接下来N行,每行N个绝对值不超过10的非负整数,描述矩阵A的值 输出格式 输出共N行,每行N个整数,表示A的M次幂所对应的矩阵.相邻的数之间用一个空格隔开 样例输入 2 21 23 4 样例输出 7 1015 22 代码如下: #include<s

矩阵相乘优化算法实现讲解

矩阵相乘      什么是矩阵? 在数学中,矩阵(Matrix)是指纵横排列的二维数据表格,最早来自于方程组的系数及常数所构成的方阵.这一概念由19世纪英国数学家凯利首先提出. 矩阵是高等代数学中的常见工具,也常见于统计分析等应用数学学科中.并且在ACM竞赛,有很多涉及到矩阵知识的题.许多算法都会结合矩阵来处理,而比较具有代表性的矩阵算法有:矩阵快速幂.高斯消元等等. 例如下面的图片就是一个矩阵: 上述矩阵是一个 4 × 3 矩阵: 某矩阵 A 的第 i 行第 j 列,或 I , j位,通常记为

算法笔记_003:矩阵相乘问题【分治法】

目录 1 问题描述  1.1实验题目 1.2实验目的 1.3实验要求 2 解决方案 2.1 分治法原理简述 2.2 分治法求解矩阵相乘原理 2.3 具体实现源码 2.4 运算结果截图 1 问题描述 1.1实验题目 设M1和M2是两个n×n的矩阵,设计算法计算M1×M2 的乘积. 1.2实验目的 (1)提高应用蛮力法设计算法的技能: (2)深刻理解并掌握分治法的设计思想: (3)理解这样一个观点:用蛮力法设计的算法,一般来说,经过适度的努力后,都可以对其进行改进,以提高算法的效率. 1.3实验要求

R语言学习中的小bug:R中矩阵相乘错误于A %*% B: 需要数值/复数矩阵/矢量参数

遇到了小bug: R中矩阵相乘错误于A %*% B: 需要数值/复数矩阵/矢量参数 看到网上别人的做法,发现了用class(A)和class(B)之后才发现,是因为读入的时候数据的类型不对,A.B的类型并不是matrix,才导致了这个问题. 用as.matrix来变型一下,就OK了. R语言学习中的小bug:R中矩阵相乘错误于A %*% B: 需要数值/复数矩阵/矢量参数,布布扣,bubuko.com

矩阵相乘(C语言实现)

---恢复内容开始--- 矩阵相乘程序的简单C语言实现: 这是矩阵相乘的公式: 源代码: 1 #include<stdio.h> 2 #include<stdlib.h> 3 #define M 100 4 5 int main(void) 6 { 7 int i,j,k,matrix1[M][M],matrix2[M][M],row1,col1,row2,col2,matrix[M][M]; 8 /*为需要相乘的两个矩阵赋值:*/ 9 printf("输入第一个矩阵的行

矩阵相乘的算法

很久没写blog了,感觉人都快变的抑郁了,换工作之后各种揪心,说好了是做Android的,结果让我搞各种算法,也罢,权当学习了一点知识吧. 今天说说矩阵相乘的算法,计算算法很简单,就是3个for循环. 首先还是说下矩阵相乘的概念,其实大学的时候线性代数中应该有讲到,不过到现在估计都还给老师了. 废话不多说,矩阵,其实就是一个二维数组,横竖排列的,比如int[5][6],就是一个矩阵,表示有5行6列. 只有当矩阵A的列数与矩阵B的行数相等时A×B才有意义.一个m×n的矩阵a(m,n)左乘一个n×p

算法提高 矩阵乘法 区间dp

问题描述 有n个矩阵,大小分别为a0*a1, a1*a2, a2*a3, ..., a[n-1]*a[n],现要将它们依次相乘,只能使用结合率,求最少需要多少次运算. 两个大小分别为p*q和q*r的矩阵相乘时的运算次数计为p*q*r. 输入格式 输入的第一行包含一个整数n,表示矩阵的个数. 第二行包含n+1个数,表示给定的矩阵. 输出格式 输出一个整数,表示最少的运算次数. 样例输入 3 1 10 5 20 样例输出 150 数据规模和约定 1<=n<=1000, 1<=ai<=1

下班无聊写个矩阵小算法,c#

今天是我正式成为程序员的第十天,也正式开始我的职业生涯,刚来公司要学的东西好多,既要掌握公司的框架(话说公司的框架真是太牛逼了,我真的是服了),还要学习EXT,Linq等等,对未来我是充满的希望,我希望我能成一个牛逼的系统架构师,希望通过写博客来记录我走过的每一步路,记录我的成长. 毕竟工作的时间太短了,也没什么可写的,就写两个矩阵相乘的算法吧,来开启我的博客之旅. 下面是实现的代码(是在控制台里实现的 1 public class Program 2 { 3 4 static void Mai