Как умножать два массива в Java

я делаю код, который получает два массива и умножает их возвращая новый массив, но не, как делание, чтобы сохранять стоимость умножения в новом массиве

 public static int[][] multiplicación (int [][] A, int [][] B){
   // columnas de la matriz A
   int n= A[0].length;
   // filas de la matriz A
   int m= A.length;
   // filas de la matriz B
   int n2= B.length;
   // columnas de la matriz B
   int o= B[0].length;
   // nueva matriz 
   int [][] C= new int [m][o];
   // se comprueba si las matrices se pueden multiplicar
   if (n==n2){
     for (int i=0; i<n-1;i++){
         int a=0;
        for (int j=0; j<n2-1;j++){
         //aqui se multiplica la matriz
         a= a+(A[i][j]*B[j][i]);
        }

        }
    }
   /**
    *  si no se cumple la condición se retorna una matriz vacía
    */
   return C;
}
1
задан 27.04.2017, 18:02
2 ответа
/**
 * método para multiplicar las matrices A y B
 * 
 * @param matrizA
 * @param matrizB
 * @return Matriz solución AxB
 */
public static double[][] multiplicarMatrices(double matrizA[][], double matrizB[][]) {

    double matrizResultado[][] = new double[matrizA.length][matrizA[0].length];

    for (int i = 0; i < matrizA.length; i++) {
        for (int j = 0; j < matrizA[0].length; j++) {
            for (int k=0;k<matrizA[0].length;k++) { 
                matrizResultado[i][j]+= (matrizA[i][k] * matrizB[k][j]);    
            }
        }

    }

    return matrizResultado;
}
0
ответ дан 24.11.2019, 09:41
  • 1
    Отвечать с единственным кодом считается низкой качество. – Orlando De La Rosa 15.04.2019, 02:34
  • 2
    Привет Хуан Пабло, пожалуйста издает твой ответ для añ adir краткая одна descripció n qué вот то, что делает có я говорю и có mo реши проблему. Прочитай CГіmo отвечать для má s informació n. – Alvaro Montoro♦ 15.04.2019, 05:03
  • 3
    Привет, как они комментируют тебе, лучше добавлять детали относительно, как решает проблему твой ответ для лучше понимать.!! – Diego Avila 15.04.2019, 19:20

Недавно они послали мне это упражнение и я это сделал таким образом, где ты можешь вводить в компьютер линии и колонны массивов, чтобы быть умноженными.

DeclaraciГіn переменных:

int filaA = Integer.parseInt(JOptionPane.showInputDialog("Ingrese numero de filas para la matriz A"));
        int columnaA = Integer.parseInt(JOptionPane.showInputDialog("Ingrese numero de columnas para la matriz A"));

        int filaB = columnaA;
        int columnaB = Integer.parseInt(JOptionPane.showInputDialog("Ingrese numero de filas para la matriz B"));


        int matrizA[][] = new int[filaA][columnaA];
        int matrizB[][] = new int[filaB][columnaB];
        int matrizResultante[][] = new int[filaA][columnaB];

        String _matrizA = "Matriz A: \n";
        String _matrizB = "Matriz B: \n";
        String _matrizResultante = "Matriz A*B: \n";

НАПОЛНЯТЬ ДАННЫЕ В МАССИВ

for (int fila = 0; fila < filaA ; fila++) {
        for (int columna = 0; columna < columnaA; columna++) {
            matrizA[fila][columna] = Integer.parseInt(JOptionPane.showInputDialog("Ingrese valor en A["+fila+"]["+columna+"]"));
        }
    }

    for (int fila = 0; fila < filaB ; fila++) {
        for (int columna = 0; columna < columnaB; columna++) {
            matrizB[fila][columna] = Integer.parseInt(JOptionPane.showInputDialog("Ingrese valor en B["+fila+"]["+columna+"]"));
        }
    }

Алгоритм вычисления:

for (int filaMatrizResultado = 0; filaMatrizResultado < filaA; filaMatrizResultado++) {
        for (int columnaMatrizResultado = 0; columnaMatrizResultado < columnaB; columnaMatrizResultado++) {
            int rpta = 0;
            for (int ncolumnA = 0; ncolumnA < columnaA ; ncolumnA++) {
                rpta += matrizA[filaMatrizResultado][ncolumnA] * matrizB[ncolumnA][columnaMatrizResultado];
            }
            matrizResultante[filaMatrizResultado][columnaMatrizResultado] = rpta;
        }
}

СООБЩЕНИЙ ВЫВОДА И GRГЃFICA МАССИВА

for (int fila = 0; fila < filaA ; fila++) {
    _matrizA +="| ";
    for (int c = 0; c < columnaA; c++) {
        _matrizA +=" " + matrizA[fila][c] +" ";
    }
    _matrizA +=" |\n";
}


for (int fila = 0;fila < filaB ; fila++) {
    _matrizB +="| ";
    for (int c = 0; c < columnaB; c++) {
        _matrizB +=" " +matrizB[fila][c] +" ";
    }
    _matrizB +=" |\n";
}



for (int fila = 0; fila < filaA ; fila++) {
    _matrizResultante +="| ";
    for (int c = 0; c < columnaB; c++) {
        _matrizResultante +=" " +matrizResultante[fila][c] +" ";
    }
    _matrizResultante +=" |\n";
}

JOptionPane.showMessageDialog(null, _matrizA+ _matrizB+_matrizResultante);
0
ответ дан 24.11.2019, 09:41