凑个字数6666666666666666666666666666666666666666666666666666666666666
简单的Java题,有关矩阵乘法
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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无用
悬赏问题
- ¥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 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看