본문 바로가기
study_life

로그의 성질 (feat.카라츠바 알고리즘의 시간 복잡도)

by skyjwoo 2020. 1. 30.
728x90
반응형

곱셈 계산의 속도를 높이기 위해 고안된 카라츠바 알고리즘에 대해 보던 중 시간 복잡도를 구하는 과정에서 로그의 성질에 대해 정말 오랜만에 찾아보게 되었다. 

 

카라츠바 알고리즘은 위키피디아에 나와있다. 

https://ko.wikipedia.org/wiki/%EC%B9%B4%EB%9D%BC%EC%B6%94%EB%B0%94_%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98

 

카라추바 알고리즘 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 카라추바 알고리즘은 소련의 수학자 아나톨리 알렉세예비치 카라추바가 1960년에 발견하고 1962년에 공개한, 큰 수에 대한 효과적인 곱셈 알고리즘이다. [1][2][3] 이 방법은 두 n자리 수의 곱셈을 최대 3 n log 2 ⁡ 3 ≈ 3 n 1.585 {\displaystyle 3n^{\log _{2}3}\approx 3n^{1.585}} (n이 2의 거듭제곱일 때는 정확하게 n log 2 ⁡ 3 {\displayst

ko.wikipedia.org

 

고등학교 떄 배우고선 기억이 잘 나지 않았는데 다시 보니깐 그때의 기억이 조금씩 살아났다. 

 

 

시간 복잡도는 다음과 같았다. 

▶(ㄱ)을 등비 급수 공식으로 묶어 내면 (ㄴ)이 된다. 시간 복잡도를 계산할 때 log는 밑이 2인 경우를 기본으로 한다. 

 

 

 

(ㄴ)에서 위의 항을 뽑아내고 이를 로그의 성질을 이용해 정리해 보고자 한다. 

 

 

밑과 지수에 있는 로그의 밑이 같은 경우의 변환

 

 

밑과 지수에 있는 로그의 밑이 다른 경우의 변환

 

 

두 변환을 바탕으로 복잡도를 간소화 시켜보면, 

즉 복잡도는 O(n^log3)이 된다. 

728x90
반응형

'study_life' 카테고리의 다른 글

선형 대수 관련 용어-선형 연립 방정식  (0) 2020.04.07
norm(노름)  (0) 2020.03.26
전처리에 관하여  (0) 2020.02.11
단양 여행  (0) 2020.02.07
유럽 여행 준비물(여름)  (0) 2019.08.30

댓글