各位牛人定义一个2*3的数组A和一个3*4的数组B再定义一个数组C用于存储A和B的乘积。请问A的B乘积具体应该怎样计算?给个实例谢谢

解决方案 »

  1.   

    那叫矩阵的乘积。三重循环实现,不是太难。A的i行与B是j列对应元素分别相乘,把这k(你给的例子中是3)个积相加,所得的和就是C矩阵的第i行第j列的元素值。你给的例子中结果C是一个2*4的矩阵。
      

  2.   

    假设A,B分别如下:2  1  0     1  1  2  3
    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
      

  3.   


    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();
    }
    }
    }
      

  4.   


    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();
    }
    }
    }
    重新排版,呵呵