蓝桥杯-矩阵相乘(java)
生活随笔
收集整理的這篇文章主要介紹了
蓝桥杯-矩阵相乘(java)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
算法提高 矩陣相乘 時(shí)間限制:1.0s 內(nèi)存限制:256.0MB問題描述小明最近在為線性代數(shù)而頭疼,線性代數(shù)確實(shí)很抽象(也很無(wú)聊),可惜他的老師正在講這矩陣乘法這一段內(nèi)容。當(dāng)然,小明上課打瞌睡也沒問題,但線性代數(shù)的習(xí)題可是很可怕的。小明希望你來(lái)幫他完成這個(gè)任務(wù)。現(xiàn)在給你一個(gè)ai行aj列的矩陣和一個(gè)bi行bj列的矩陣,要你求出他們相乘的積(當(dāng)然也是矩陣)。(輸入數(shù)據(jù)保證aj=bi,不需要判斷)輸入格式輸入文件共有ai+bi+2行,并且輸入的所有數(shù)為整數(shù)(long long范圍內(nèi))。第1行:ai 和 aj第2~ai+2行:矩陣a的所有元素第ai+3行:bi 和 bj第ai+3~ai+bi+3行:矩陣b的所有元素輸出格式輸出矩陣a和矩陣b的積(矩陣c)(ai行bj列)樣例輸入2 212 2345 562 278 8945 56樣例輸出1971 23566030 7141
import java.util.Scanner;
public class Main{public static void main(String args[]){Scanner in=new Scanner(System.in);int m1=in.nextInt();int n1=in.nextInt();int a[][]=new int[m1][n1];for(int i=0;i<m1;i++){for(int j=0;j<n1;j++){a[i][j]=in.nextInt();}}int m2=in.nextInt();int n2=in.nextInt();int b[][]=new int[m2][n2];for(int i=0;i<m2;i++){for(int j=0;j<n2;j++){b[i][j]=in.nextInt();}}matrixMul(a,b);}public static void matrixMul(int a[][],int b[][]){int m=a.length;int n=b[0].length;int res[][]=new int[m][n];int sum=0; for(int i=0;i<m;i++){for(int k=0;k<n;k++){ for(int j=0;j<b.length;j++){sum+=a[i][j]*b[j][k];}res[i][k]=sum;sum=0; } } for(int i=0;i<m;i++){for(int j=0;j<n;j++){System.out.print(res[i][j]+" ");}System.out.println();}}
}
總結(jié)
以上是生活随笔為你收集整理的蓝桥杯-矩阵相乘(java)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蓝桥杯-拿糖果(java)
- 下一篇: 蓝桥杯-c++_ch04_02_修正版(