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.

¿Cómo funciona la k en la multiplicación de matrices en C?

¿Cómo funciona ‘k’ en el código a continuación?

#include <stdio.h>

define R 2

define C 2

int main(void)
{
int a[R][C], b[R][C], mul[R][C], i, j, k;
for (i = 0; i < R; ++i)
for (j = 0; j < C; ++j)
{
scanf_s(“%d”, &a[i][j]);
}

    for (i = 0; i < R; ++i)
        for (j = 0; j < C; ++j)
        {
            scanf_s("%d", &b[i][j]);
        }

    for (i = 0; i < R; ++i)
        for (j = 0; j < C; ++j)
        {
            mul[i][j] = 0;
            for (k = 0; k < C; ++k)
            {
                mul[i][j] += a[i][k] * b[k][j];
            }
            printf("%d", mul[i][j]);
            if (j == 0)
            {
                printf(" ");
            }

            else if (i == 0 &amp;&amp; j == 1)
            {
                printf("\n");
            }
        }
return 0;

}

Para la suma de matrices, sé que en matemáticas ‘sum[0][0] = a[0][0] + b[0][0]’ y en el código también es así.

Para la multiplicación de matrices, en matemáticas es ‘mul[0][0] = a[0][0] x b[0][0] + a[0][0] x b[1][0]’.

Sin embargo, en el código, los corchetes no solo provienen de i y j sino también de k.

scanf_s(“%d”, &a[i][j]); y scanf_s(“%d”, &b[i][j]); han mostrado que ‘%d’ se guarda en la memoria a[i][j] y b[i][j].

Entonces, ¿qué se lee en ‘k’ en mul[i][j] = a[i][k] * b[k][j];?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    En el código mul[i][j] = a[i][k] * b[k][j];, k se utiliza como una variable de bucle para recorrer las columnas de la primera matriz y las filas de la segunda matriz. Representa la dimensión común de las matrices que se multiplican, que es el número de columnas en la primera matriz y el número de filas en la segunda matriz. Esto es necesario para la multiplicación de matrices because porque el producto de dos matrices A y B con dimensiones m x n y n x p, respectivamente, es una matriz C con dimensiones m x p, donde el elemento en la fila i-ésima y la columna j-ésima de C es el producto punto de la fila i-ésima de A y la columna j-ésima de B.

Comments are closed.