배열을 이용한 행렬 곱셈 프로그램 만들기 입니다.
나봄
질문 제목 :행렬 곱셈 프로그램 만들기질문 요약 :1차 배열만을 사용해서 행렬곱셈 프로그램을 만들라는 질문입니다.질문 내용 :
int matrixA[16], matrixB[16], matrixResult[16];
…
for( int i=0; i4; i++)
{
for(int j=0; j4; j++)
{
matrixResult[j+i*4] += matrixA[ ] * matrixB[ ];
}
}
이것을 보고 행렬곱셈 프로그램을 만들어야합니다.
도대체 어떻게 해야할 지 몰르겠습니다.
-
늘다
아아... 감사합니다^^
-
새꽃
for문이 하나 빠졌어요.
i,j에 대해...
r[i*4+j] = 0; // r[i][j] = 0
for(k=0; k 4; k++) {
r[i*4+j] += a[i*4+k] * b[k*4+j]; // r[i][j] += a[i][k]*b[k][j]
} -
알프레드
답변 감사합니다...^^
그런데 2차원 배열 이용하지 않고 1차원 배열을 사용해서도 만들 수 있나요?? -
이루리라
우선, 위에 적어주신 참고에서 변수가 (i, j) 인 것을 보아, 4행4열의 2차원배열로 생각하고 말씀드리겠습니다.
행렬의 곱셈 계산 방식을 생해보시면 좋을 것 같습니다.
가령, 3,3의 배열의 곱셈에서 (1,1)의 배열의 값은
좌(1,1)*우(1,1) + 좌(1,2)*우(2,1) + 좌(1,3)*우(3,1) = 곱셈(1,1)
이 될 것입니다.
이렇게 행렬의 곱셈 방식에서, 증가하는 수가 어떤 것이고, 어떤 것과 같이 증가하는지 생각해보신다면