java数组乘积怎样算? 各位牛人定义一个2*3的数组A和一个3*4的数组B再定义一个数组C用于存储A和B的乘积。请问A的B乘积具体应该怎样计算?给个实例谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那叫矩阵的乘积。三重循环实现,不是太难。A的i行与B是j列对应元素分别相乘,把这k(你给的例子中是3)个积相加,所得的和就是C矩阵的第i行第j列的元素值。你给的例子中结果C是一个2*4的矩阵。 假设A,B分别如下:2 1 0 1 1 2 33 2 2 * -1 0 1 2 4 2 1 1 结果C的(0,0)元素是A的第0行与B的第0列对应元素相乘的积的和: 即2*1+1*-1+0*4=1结果C的(0,1)元素是A的第0行与B的第1列对应元素相乘的积的和: 即2*1+1*0+0*2=2结果C的(0,2)元素是A的第0行与B的第2列对应元素相乘的积的和: 即2*2+1*1+0*1=5结果C的(0,3)元素是A的第0行与B的第3列对应元素相乘的积的和: 即2*3+1*2+0*1=8结果C的(1,0)元素是A的第1行与B的第0列对应元素相乘的积的和: 即3*1+2*-1+2*4=9结果C的(1,1)元素是A的第1行与B的第1列对应元素相乘的积的和: 即3*1+2*0+2*2=7结果C的(1,2)元素是A的第1行与B的第2列对应元素相乘的积的和: 即3*2+2*1+2*1=10结果C的(1,3)元素是A的第1行与B的第3列对应元素相乘的积的和: 即3*3+2*2+2*1=15结果C是:1 2 5 89 7 10 15 public class Test { public static void main(String[] args) { int[][] a = new int[2][3]; int[][] b = new int[3][4]; int[][] c = new int[2][4]; a[0][0] = 1; a[0][1] = 0; a[0][2] = 1; a[1][0] = 0; a[1][1] = 1; a[1][2] = 0; b[0][0] = 1; b[0][1] = 0; b[0][2] = 1; b[0][3] = 0; b[1][0] = 0; b[1][1] = 1; b[1][2] = 0; b[1][3] = 1; b[2][0] = 1; b[2][1] = 0; b[2][2] = 0; b[2][3] = 1; System.out.println("a[2][3]"); for (int i = 0; i < 2; i++) { for (int j = 0; j < 3; j++) { System.out.print(a[i][j] + " "); } if (i == 1) System.out.print(" *"); System.out.println(); } System.out.println("a[3][4]"); for (int m = 0; m < 3; m++) { for (int n = 0; n < 4; n++) { System.out.print(b[m][n] + " "); } System.out.println(); } System.out.println("c[2][4]="); for (int i = 0; i < 2; i++) { for (int n = 0; n < 4; n++) { for (int j = 0; j < 3; j++) { c[i][n] += a[i][j] * b[j][n]; } System.out.print(c[i][n] + " "); } System.out.println(); } }} public class Test { public static void main(String[] args) { int[][] a = { { 1, 0, 1 }, { 0, 1, 0 } }; int[][] b = { { 1, 0, 1, 0 }, { 0, 1, 0, 1 }, { 1, 0, 0, 1 } }; int[][] c = new int[2][4]; System.out.println("a[2][3] * b[3][4]"); for (int i = 0; i < 3; i++) { if (i < 2) { for (int j = 0; j < 3; j++) { System.out.print(a[i][j] + " "); } } else System.out.print(" "); if (i == 1) System.out.print(" * "); else System.out.print(" "); for (int m = 0; m < 4; m++) { System.out.print(b[i][m] + " "); } System.out.println(); } System.out.println("c[2][4]"); for (int i = 0; i < 2; i++) { for (int n = 0; n < 4; n++) { for (int j = 0; j < 3; j++) { c[i][n] += a[i][j] * b[j][n]; } System.out.print(c[i][n] + " "); } System.out.println(); } }}重新排版,呵呵 JAVA WEB MVC结构为什么要分那些包?? 关于JMF里面setMediaTime()的几个问题 这是个java项目 为啥我写的 D:没有日志文件呢 是哪写错了吗 谢谢先 添加一个加载了图片的Label后,再添加label,后面的label显示不出来?如何设置? 一个非常有挑战性的问题!看看谁能解决! 请教一个Java Swing图形化编程的小技术问题. Hashtable 简单问题:怎样来回切换窗体? 这样的Sql语句怎么会取不到记录集出来? 那位大狭有端口扫描的源码? 如何取得MP3文件的时间长度 工具类是不是一般都做成静态的啊?
3 2 2 * -1 0 1 2
4 2 1 1
结果C的(0,0)元素是A的第0行与B的第0列对应元素相乘的积的和: 即2*1+1*-1+0*4=1
结果C的(0,1)元素是A的第0行与B的第1列对应元素相乘的积的和: 即2*1+1*0+0*2=2
结果C的(0,2)元素是A的第0行与B的第2列对应元素相乘的积的和: 即2*2+1*1+0*1=5
结果C的(0,3)元素是A的第0行与B的第3列对应元素相乘的积的和: 即2*3+1*2+0*1=8
结果C的(1,0)元素是A的第1行与B的第0列对应元素相乘的积的和: 即3*1+2*-1+2*4=9
结果C的(1,1)元素是A的第1行与B的第1列对应元素相乘的积的和: 即3*1+2*0+2*2=7
结果C的(1,2)元素是A的第1行与B的第2列对应元素相乘的积的和: 即3*2+2*1+2*1=10
结果C的(1,3)元素是A的第1行与B的第3列对应元素相乘的积的和: 即3*3+2*2+2*1=15结果C是:
1 2 5 8
9 7 10 15
public class Test { public static void main(String[] args) {
int[][] a = new int[2][3];
int[][] b = new int[3][4];
int[][] c = new int[2][4];
a[0][0] = 1;
a[0][1] = 0;
a[0][2] = 1;
a[1][0] = 0;
a[1][1] = 1;
a[1][2] = 0; b[0][0] = 1;
b[0][1] = 0;
b[0][2] = 1;
b[0][3] = 0;
b[1][0] = 0;
b[1][1] = 1;
b[1][2] = 0;
b[1][3] = 1;
b[2][0] = 1;
b[2][1] = 0;
b[2][2] = 0;
b[2][3] = 1;
System.out.println("a[2][3]");
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
System.out.print(a[i][j] + " ");
} if (i == 1)
System.out.print(" *"); System.out.println();
}
System.out.println("a[3][4]");
for (int m = 0; m < 3; m++) {
for (int n = 0; n < 4; n++) {
System.out.print(b[m][n] + " ");
}
System.out.println();
}
System.out.println("c[2][4]=");
for (int i = 0; i < 2; i++) {
for (int n = 0; n < 4; n++) {
for (int j = 0; j < 3; j++) {
c[i][n] += a[i][j] * b[j][n];
}
System.out.print(c[i][n] + " ");
}
System.out.println();
}
}
}
public class Test { public static void main(String[] args) {
int[][] a = { { 1, 0, 1 }, { 0, 1, 0 } };
int[][] b = { { 1, 0, 1, 0 }, { 0, 1, 0, 1 }, { 1, 0, 0, 1 } };
int[][] c = new int[2][4]; System.out.println("a[2][3] * b[3][4]");
for (int i = 0; i < 3; i++) {
if (i < 2) {
for (int j = 0; j < 3; j++) {
System.out.print(a[i][j] + " ");
}
}
else
System.out.print(" ");
if (i == 1)
System.out.print(" * ");
else
System.out.print(" ");
for (int m = 0; m < 4; m++) {
System.out.print(b[i][m] + " ");
}
System.out.println(); }
System.out.println("c[2][4]");
for (int i = 0; i < 2; i++) {
for (int n = 0; n < 4; n++) {
for (int j = 0; j < 3; j++) {
c[i][n] += a[i][j] * b[j][n];
}
System.out.print(c[i][n] + " ");
}
System.out.println();
}
}
}
重新排版,呵呵