10 컬렉션
역행렬
다차원 배열을 활용한 행렬 문제를 풀어보는 실습을 해봅니다.
사실 Go언어에서 배열보다는 동적 할당이 가능한 슬라이스가 많이 쓰인다고 했습니다. 하지만 const 용법을 사용한 상수를 꼭 선언해야하는 상황이 있는 것처럼, 배열을 사용해야하는 경우가 있습니다.
다차원 행렬을 선언하고 연산하는 프로그램은 선형대수에서 많이 쓰입니다. 많은 공식들이 있지만 중/고등학교 시절 기초로 배웠던 2x2 행렬의 역행렬을 연산하고 출력하는 예제를 실습해보겠습니다.
2x2 행렬은 [{a, b}, {c, d}] 형식으로 사용합니다. 1행 1열부터 2행 2열까지 순서대로 a, b, c, d로 표현합니다.
2x2 정방행렬의 역행렬은 a*d - b*c 가 0이 아닐때 존재합니다.
이 실습 예제는 사용자가 따로 값을 입력하지 않고 초기화한 값으로 연산을 하지만 얼마든지 사용자에게 값을 입력받고 역행렬의 존재 여부와 역행렬을 출력하는 프로그램으로 발전시킬 수 있습니다.