Algorithm

[기초 알고리즘] 수학: 행렬

noahkim_ 2025. 11. 22. 10:57
  • 수 또는 다항식 또는 함수 등을 직사각형 모양으로 배열한 것

 

피보나치 행렬

상태 벡터

$ S_n = \begin{bmatrix} F_n \\ F_{n-1} \end{bmatrix} $

  • ➡️ 위 두 값만 있으면 다음 F[n+1]을 구할 수 있음

 

행렬 표현

$ \begin{bmatrix} F_{n+1} \\ F_n \end{bmatrix}
=
\begin{bmatrix} 1 & 1 \\ 1 & 0 \end{bmatrix}
\begin{bmatrix} F_n \\ F_{n-1} \end{bmatrix} $

  • 선형 변환으로 표현 가능

 

점화식

$ S_n = A^{\,n-1} S_1 $

  • A: 피보나치 행렬
  • ✅ 행렬 A를 한번 곱하기 = 한 단계를 한칸 이동시키는 연산
  • ➡️ A의 n제곱을 빠른 거듭제곱으로 계산하면 빠르게 구할 수 있음

 

점화식 유도

더보기
A × S₁ = S₂  
A × S₂ = S₃  
...
A × Sₙ₋₁ = Sₙ
Sₙ = A × A × A × ... × A × S₁
     └───── n−1번 ─────┘
     = A⁽ⁿ⁻¹⁾ S₁

 

 

출처