곱셈 순서는 두고 괄호만 바꾸면 계산량이 달라진다

곱셈 순서는 두고 괄호만 바꾸면 계산량이 달라진다

여러 매듭과 줄 연결을 모아 놓은 실물 전시판

사진: Noracrentiss · CC BY-SA 4.0 · 원본 출처

A=(121012),B=(123),C=(1−1)A=\begin{pmatrix}1&2&1\\0&1&2\end{pmatrix},\quad B=\begin{pmatrix}1\\2\\3\end{pmatrix},\quad C=\begin{pmatrix}1&-1\end{pmatrix}

(AB)C와 A(BC)를 비교한다. 각 성분에서 정해진 곱을 모두 계산하는 방식으로, 0이 들어 있는 곱도 포함하며 이미 얻은 값을 재사용하지 않고 실수 곱셈 횟수를 센다.

AB는 2행 1열이고 성분은 8, 8이다. AB에서 곱셈 6번, 이를 C에 곱할 때 4번이 필요하다. 합계는 10번이다.

BC는 3행 2열이고 [[1,−1],[2,−2],[3,−3]]이다. 여기서 6번, A(BC)에서 12번으로 합계 18번이다. 결과는 두 방식 모두 같다.

(AB)C=A(BC)=(8−88−8).(AB)C=A(BC)=\begin{pmatrix}8&-8\\8&-8\end{pmatrix}.

결합법칙은 앞에서부터 반드시 계산하라는 규칙이 아니다. 행렬의 순서 A,B,C는 유지하면서 먼저 계산할 두 행렬을 선택할 수 있다. 반면 B와 C의 자리를 바꾸는 것은 결합법칙으로 설명할 수 없다.

계산량 비교에서는 어떤 곱을 생략했는지 기준이 필요하다. 0의 곱을 생략하거나 같은 결과를 재사용하는 방법까지 허용하면 횟수가 달라질 수 있다. 이번 문항은 일반적인 성분 계산식에 나타나는 곱을 모두 세는 기준을 명시했으므로 10번과 18번을 비교한다.

출처·착안: Matthew Simonson, 「Matrix Multiplication Made Easy」. 문항과 풀이는 새로 작성했다.