수학에서 행렬 곱셈 또는 행렬 곱은 두 행렬에서 행렬을 생성하는 이항 연산입니다. 이 정의는 응용 수학, 물리학 및 공학에 수많은 응용 프로그램이있는 벡터의 선형 방정식 및 선형 변환에 의해 동기가 부여됩니다. 보다 구체적으로, A가 n × m 행렬이고 B가 m × p 행렬 인 경우, 그들의 행렬 곱 AB는 n × p 행렬이며, 여기서 A 행의 m 항목은 m 항목과 a를 곱합니다. B의 열과 합쳐서 AB의 항목을 생성합니다. 두 개의 선형 변환이 행렬로 표시되면 행렬 곱은 두 변환의 구성을 나타냅니다.
출처 : Wikipedia
즉, 두 행렬을 곱하려면
1 2 3 1 4
2 3 4 × 3 1 =
3 4 5 4 6
첫 번째 행렬에서의 제 1 행렬의 행 번호 1, 칼럼 번호 1을하고 번성 1
하여 1
, 2
별 3
과 3
별 4
.
1 × 1 = 1
2 × 3 = 6
3 × 4 = 12
이제 함께 추가하여 첫 번째 항목을 얻으십시오.
1 2 3 1 4 19
2 3 4 × 3 1 =
3 4 5 4 6
결과의 첫 번째 열에있는 두 번째 숫자의 경우 행 번호 1 대신 행 번호 2를 가져 와서 동일한 작업을 수행해야합니다.
1 × 2 = 2
3 × 3 = 9
4 × 4 = 16
= 27
첫 번째 열 전체를 수행 한 후 결과는 다음과 같습니다.
1 2 3 1 4 19
2 3 4 × 3 1 = 27
3 4 5 4 6 35
이제 똑같은 일을 다시 수행하지만 첫 번째 열 대신 두 번째 열을 가져 와서 다음을 수행하십시오.
1 2 3 1 4 19 24
2 3 4 × 3 1 = 27 35
3 4 5 4 6 35 46
당신의 작업
-10000에서 10000 사이의 숫자를 포함하는 두 개의 행렬 (최대 크기 200x200)이 주어지면 첫 번째 행의 열 수는 두 번째 행의 수와 같고 첫 번째 행에 두 번째 행을 곱합니다. (행렬 곱셈은 비정규 적입니다.)
입력을 받아서 배열 (또는 이에 상응하는), 행렬 (언어가 해당 형식을 가진 경우) 또는 여러 줄 문자열의 배열로 출력 할 수 있습니다.
행렬 곱셈에는 내장 함수를 사용할 수 없습니다.
테스트 사례
1 2 1 2 3 4 5 13 16 19 22 25
3 4 × 6 7 8 9 10 = 27 34 41 48 55
5 6 41 52 63 74 85
2 3 3 5 15 13
3 4 × 3 1 = 21 19
5 3 11 27
1 3 1 3 7 15
9 3 × 2 4 = 15 39
1 -1000 -1999 -3997
이것은 code-golf 이므로 바이트 수가 가장 적은 코드가 이깁니다.