es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Algoritmo de Multiplicación de Matrices se Agota.

Estoy intentando implementar una multiplicación de matrices simple con 3 bucles, o(n^3). Vi este algoritmo muchas veces, pero parece que no funciona. El programa se rompe justo después de la primera iteración del segundo bucle. En cuanto a mi código, imprime hasta “segundo bucle” una vez y luego se rompe. Aquí está mi código.

vector<>> getMultiplication(vector<>> a, vector<>> b, int r1, int c1, int r2, int c2){
vector<>> ans;
cout << r1 << “\n” << c1 << “\n” << r2 << “\n” << c2 << “\n”;
for(int i = 0; i < r1; i++) {
cout << “primer bucle” << “\n”;
for (int j = 0; j < c2; j++){
cout << “segundo bucle” << “\n”;
ans[i][j] = 0;
for (int k = 0; k < r2; k++) {
cout << “tercer bucle” << “\n”;
ans[i][j] += a[i][k] * b[k][j];
}
}
}

return ans;

}

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que tu código está casi correcto. El único problema es que estás intentando acceder a los elementos de ans antes de inicializarlos. Necesitas inicializar ans con el tamaño correcto antes de poder acceder a sus elementos. Puedes hacer esto agregando el siguiente código antes del primer bucle:

    ans.resize(r1);
    for (int i = 0; i < r1; i++) {
        ans[i].resize(c2);
    }
    

    Esto creará una matriz 2D con el tamaño correcto para la multiplicación de matrices.

Comments are closed.