算法-蓝桥杯-算法训练 矩阵乘法 (JAVA)
2018-03-24 15:38
288 查看
1 引言
矩阵乘法怎么计算?2 题目
问题描述输入两个矩阵,分别是m*s,s*n大小。输出两个矩阵相乘的结果。
输入格式
第一行,空格隔开的三个正整数m,s,n(均不超过200)。
接下来m行,每行s个空格隔开的整数,表示矩阵A(i,j)。
接下来s行,每行n个空格隔开的整数,表示矩阵B(i,j)。
输出格式
m行,每行n个空格隔开的整数,输出相乘後的矩阵C(i,j)的值。
样例输入
2 3 2
1 0 -1
1 1 -3
0 3
1 2
3 1
样例输出
-3 2
-8 2
提示
矩阵C应该是m行n列,其中C(i,j)等于矩阵A第i行行向量与矩阵B第j列列向量的内积。
例如样例中C(1,1)=(1,0,-1)*(0,1,3) = 1 * 0 +0*1+(-1)*3=-3
3 源代码
import java.util.*; class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int m=sc.nextInt();//输入两个矩阵的行数和列数,并定义矩阵 int s=sc.nextInt(); int n=sc.nextInt(); int[][] A=new int[m][s]; int[][] B=new int[s] ; int[][] C=new int[m] ; for(int i=0;i<m;i++)//输入两个矩阵的元素 for(int j=0;j<s;j++) A[i][j]=sc.nextInt(); for(int i=0;i<s;i++) for(int j=0;j<n;j++) B[i][j]=sc.nextInt(); for(int i=0;i<m;i++)//按照矩阵的计算法则,计算矩阵C { for(int k=0;k<n;k++) { for(int j=0;j<s;j++) { C[i][k]+=A[i][j]*B[j][k]; } } } sc.close(); for(int i=0;i<m;i++)//输出矩阵C的元素 { for(int j=0;j<n;j++) { System.out.print(C[i][j]+" "); } System.out.println(); } } }
4 知识点补充
设A为的矩阵,B为
的矩阵,那么称
的矩阵C为矩阵A与B的乘积,记作
,其中矩阵C中的第
行第
列元素可以表示为:
如下所示:
5 思路讲解
第一部分输入三个矩阵的长度,并定义矩阵;第二部分输入两个矩阵的元素;第三部分按照矩阵的计算法则,计算矩阵C的元素,最后输出元素。6 结束语
嗯,要多写几遍!分享和帮助是人生一大乐事,希望可以帮助您。本人才疏学浅,如果有不当之处,还请批评指正。同时欢迎大家评论、点赞及转发!
相关文章推荐
- 蓝桥杯-算法训练-矩阵乘法-Java
- 蓝桥杯算法训练——矩阵乘法
- 蓝桥杯 算法训练 矩阵乘法
- 蓝桥杯算法训练 矩阵乘法
- 算法笔记_081:蓝桥杯练习 算法提高 矩阵乘法(Java)
- 蓝桥杯 ALGO-86 算法训练 矩阵乘法
- 蓝桥杯 算法训练 矩阵乘法
- 蓝桥杯- 算法训练 矩阵乘法
- 蓝桥杯练习: 算法训练 矩阵乘法
- 蓝桥杯_算法训练_矩阵乘法
- 蓝桥杯--算法训练矩阵乘法
- 蓝桥杯 算法训练 矩阵乘法
- 蓝桥杯习题集_ 算法训练 矩阵乘法
- 【ShancoLove】带你看蓝桥杯——算法训练 矩阵乘法
- 蓝桥杯 算法提高 矩阵乘法(Java解题)
- 蓝桥杯-算法训练-字串统计-Java
- 算法训练 矩阵乘法
- 蓝桥杯 - 算法训练 - Torry的困惑(基本型) - Java
- 蓝桥杯 算法训练VIP 瓷砖铺放(Java解题)
- 蓝桥杯 ALGO-83 算法训练 阶乘 java版