답변:
코멘트에 응답하여 편집 계산하는 시간 시간을 계산하기 위해 필요로 분해 될 수 f를 1 ( N ) = N (2) 및 그 수행하는데 필요한 N f를 1 ( N ) . m 비트 수에 n 비트 수 를 곱 하면 School Book 방법에 의해 정확히 m n 시간 이 걸린다고 가정하겠습니다 . 첨가 등은 일정한 시간입니다. 결과적으로 n 2를 계산 하면 log 2 가 걸립니다.시간
을 계산하기 위해 이진 지수를 사용한다고 가정하자 . 이항 지수화는 f ( n ) 계산에서 두 가지 종류의 연산 을 수행합니다. n 2 의 이진 확장에서 현재 비트 가 0인지 1 인지에 따라 현재 곱을 제곱하고 현재 곱에 n을 곱합니다 . 최악의 경우, n 2 는 2의 거듭 제곱이므로 이항 지수는 답에 도달 할 때까지 현재 곱을 반복하여 제곱합니다 .n 2 는 m ′ = ⌈ 2 log 2 ( n 비트 등 squarings의 개수가되도록 m = m ' - 1 . 우리가 아래에서 더 분석하는 경우입니다.
첫 번째 제곱은 시간이 걸리므로 o 1 = 2 log 2 ( n ) -비트 곱이됩니다. 두 번째 제곱은 두 개의 o 1 비트 숫자를 취하고 t 2 = o 2 1 번 실행되므로 o 2 = 2 o 1 비트 곱이됩니다. 계속해서, i 번째 단계는 t i = 4 i − 1 log를 필요로합니다.시간이고 aoi=2ilog2(n)비트 곱을 출력합니다. 이 프로세스는m번째 단계에서 중지됩니다. 결과적으로 시간이 걸립니다
.
초기 제곱 비용이 포함되면 최대 시간이 필요하다는 것을 알게됩니다
노트