나름 개발자의 IT블로그

  • 홈
  • 태그
  • 방명록

거듭제곱 1

[알고리즘] 분할 정복을 이용한 거듭제곱

이전 글에서 피보나치 수를 구하다가 빠른 거듭제곱이 나와 따로 글로 남기게 되었다. 거듭제곱을 위해 다음 코드를 작성하면 $O(N)$의 시간이 필요하다. def pow(a,n): r = 1 for _ in range(n): r *= a return r 위 코드는 거듭제곱을 $a^n=a^{n-1} \times a$ 방식으로 구한다. 이것을 빠르게 해 보자! $n$이 짝수이면 $a^n = a^{n/2} \times a^{n/2}$ $n$이 홀수이면 $a^n = a^{n/2} \times a^{n/2} \times a$ 가 된다. 이제 이것을 재귀적으로 계산하면 된다. 예를 들어 $3^{60}$을 계산해보자 $3^{60} = 3^{30} \times 3^{30}$ $3^{30} = 3^{15} \times 3..

프로그래밍/알고리즘 2021.12.02
1
더보기
프로필사진

  • 분류 전체보기 (176)
    • 프로그래밍 (117)
      • 개발 (19)
      • 분산시스템 (1)
      • 알고리즘 (57)
      • 도커 (16)
      • 쿠버네티스 (8)
      • DevOps (7)
      • 개발환경 (0)
      • 스프링 (9)
    • 프로그래밍 언어 (8)
      • 취업 필수 언어 (3)
      • 엘릭서 (3)
      • C++ (2)
    • 수학 (20)
      • 현대대수학 (12)
      • 정수론 (7)
    • 기타 (31)
      • 암호학 (24)
      • 기타 (7)

Tag

개발, Github Actions, cicd, 대회, 도커, 암호학, 데이터베이스, 스프링, 쿠버네티스, 코드포스, UCPC, 수학, 알고리즘, 정수론, 백엔드, 자바, 건국대학교, 능지, 컴퓨테이션, aws,

최근글과 인기글

  • 최근글
  • 인기글

공지사항

Copyright © Kakao Corp. All rights reserved.

티스토리툴바