• 算法训练 矩阵乘法


    问题描述
      输入两个矩阵,分别是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
     1 import java.text.DecimalFormat;
     2 import java.text.NumberFormat;
     3 import java.util.ArrayList;
     4 import java.util.Arrays;
     5 import java.util.Collection;
     6 import java.util.Collections;
     7 import java.util.List;
     8 import java.util.Scanner;
     9 import java.util.Stack;  
    10     public class Main{   
    11         public static void main(String[] args){ 
    12             int m,s,n;
    13             Scanner input = new Scanner(System.in);
    14             m = input.nextInt();
    15             s = input.nextInt();
    16             n = input.nextInt();
    17             int[][] a = new int[m][s];
    18             int[][] b = new int[s][n];
    19             int[][] c = new int[m][n];
    20             for(int i=0;i<m;i++){
    21                 for(int j=0;j<s;j++){
    22                     a[i][j] = input.nextInt();
    23                 }
    24             }
    25             for(int i=0;i<s;i++){
    26                 for(int j=0;j<n;j++){
    27                     b[i][j] = input.nextInt();
    28                 }
    29             }
    30             for(int i=0;i<m;i++){
    31                 for(int j=0;j<n;j++){
    32                     int sum = 0;
    33                     for(int k=0;k<s;k++){
    34                         sum = sum+a[i][k]*b[k][j];
    35                     }
    36                     c[i][j] = sum;
    37                 }
    38             }
    39             for(int i=0;i<m;i++){
    40                 for(int j=0;j<n;j++){
    41                     System.out.print(c[i][j]+" ");
    42                 }
    43                 System.out.println();
    44             }
    45             
    46         }
    47  }  
  • 相关阅读:
    VS2013 使用QCustomPlot等三方库如何配置
    error LNK1112:模块计算机类型"X64" 与目标计算机类型"X86" 冲突
    Qt 获取屏幕当前分辨率
    流程控制
    导航条和工作内容纪要
    js简介
    高度塌陷
    浮动
    文档流
    display和overflow
  • 原文地址:https://www.cnblogs.com/lolybj/p/6529805.html
Copyright © 2020-2023  润新知