肿瘤康复网,内容丰富有趣,生活中的好帮手!
肿瘤康复网 > Java实现 稀疏矩阵乘积

Java实现 稀疏矩阵乘积

时间:2019-05-31 18:34:37

相关推荐

稀疏矩阵乘积

描述

给定两个N × N的稀疏矩阵A和B,其中矩阵A有P个元素非0,矩阵B有Q个元素非0。请计算两个矩阵的乘积C = A × B并且输出C中所有非0的元素。

输入

第一行包含三个整数N, P, Q

以下P行每行三个整数i, j, k表示A矩阵的一个非0元素:Aij = k

以下Q行每行三个整数i, j, k表示B矩阵的一个非0元素:Bij = k

对于80%的数据,1 ≤ N, P, Q ≤ 200

对于100%的数据, 1 ≤ N, P, Q ≤ 2000, 1 ≤ i, j ≤ N, 0 ≤ k ≤ 100

输出

输出若干行,按先行后列的顺序输出矩阵C的每一个非0元素

每行三个整数i, j, k表示C矩阵的一个非0元素:Cij = k

样例输入

2 2 4

1 1 1

2 2 1

1 1 1

1 2 2

2 1 3

2 2 4

样例输出

1 1 1

1 2 2

2 1 3

2 2 4

package 第二次模拟;import java.util.Scanner;public class Demo4矩阵相乘 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int p = sc.nextInt();int q=sc.nextInt();int [] [] a = new int [p][3];int [] [] b = new int [q][3];for (int i = 0; i < p; i++) {for (int j = 0; j < 3; j++) {a[i][j]=sc.nextInt();}}for (int i = 0; i < q; i++) {for (int j = 0; j < 3; j++) {b[i][j]=sc.nextInt();}}sc.close();int [] [] c = new int [n][n];for (int i = 0; i < p; i++) {for (int j = 0; j < q; j++) {if (a[i][1] == b[j][0]) {//由图可以看出当A矩阵的列号等于B矩阵的行号时求和c[a[i][0]-1][b[j][1]-1] += a[i][2] * b[j][2];}}}for (int i = 0; i <n; i++) {for (int j = 0; j <n; j++) {System.out.println(i+1+" "+(j+1)+" "+c[i][j]);}}}}

如果觉得《Java实现 稀疏矩阵乘积》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。