m0_54831887 2021-11-14 11:49 采纳率: 84.6%
浏览 76
已结题

简单的Java题,有关矩阵乘法

凑个字数6666666666666666666666666666666666666666666666666666666666666

img

  • 写回答

2条回答 默认 最新

  • 南七灵 2021-11-14 13:16
    关注
    import java.util.*;
    class Solution {
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            int num = sc.nextInt();
            Map<Integer,int[]> map = new HashMap<>();
            for(int i = 1;i <= num;i++){
                int[] temp = new int[2];
                temp[0] = sc.nextInt();//行数
                temp[1] = sc.nextInt();//列数
                map.put(i,temp);
            }
            Map<Integer,int[][]> matrix = new HashMap<>();
            for(int i = 1;i <= num;i++){
                int[] temp1 = map.get(i);
                int rows = temp1[0], clos = temp1[1];
                int[][] arr = new int[rows][clos];
                for(int j = 0;j < rows;j++){
                    for(int k = 0;k < clos;k++){
                        arr[j][k] = sc.nextInt();
                    }
                } 
                matrix.put(i, arr);
            }
            sc.close();
            //开始遍历map进行矩阵乘法
            int[][] res = multiply(matrix.get(1),matrix.get(2));
            for(int i = 3;i <= num;i++){
                res = multiply(res, matrix.get(i));
            }
            for(int i = 0;i < res.length;i++){
                for(int j = 0;j < res[0].length;j++){
                    System.out.print(res[i][j] + " ");
                }
                System.out.println();
            }
        }
        public static int[][] multiply(int[][] m1, int[][] m2){
            int[][] res = new int[m1.length][m2[0].length];
            for(int i=0;i<m1.length;i++) {
                for(int j=0;j<m2[0].length;j++) {
                    for(int k=0;k<m2.length;k++) {
                        res[i][j] += (m1[i][k] * m2[k][j]) % 514329;
                    }
                }
            }
            return res;
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月14日
  • 已采纳回答 11月14日
  • 创建了问题 11月14日

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看