(입력 번호가 상수에 의해 제한되도록 문제에 대한 설명을 이해하므로 바운드에 대한 종속성을 추적하지 않습니다.)
이 문제는 로그의 합을 사용하여 선형 시간 및 로그 공간에서 해결할 수 있습니다. 더 자세하게 알고리즘은 다음과 같습니다.
- 이진 카운터를 사용하여 두 목록에서 가능한 각 입력 번호의 발생 횟수를 계산합니다.
이 걸리는 시간 및 카운터 공간 사용 O ( 로그 없음을 ) 각 카운터에 의해 제한 될 때, N 값.O ( n )O ( 로그n )엔
O ( 1 ) 아래의 소수라고 합시다 . 숫자 a 에 대한 각 카운터를 a 의 소인수에 분배 하고 (적절한 다중성으로) 다른 목록에서 한 목록의 수를 빼면 시간 O ( log n ) 에서 다음을 얻습니다 .피1, … , p케이O ( 1 )ㅏㅏO ( 로그n )
정수 를 O ( log n ) 비트로 계산하여 문제가 Λ : = ∑ k i = 1 β i log p i 의 부호를 결정하는 것과 같습니다 .β1, … , β케이O ( 로그n )Λ : = ∑케이나는 = 1β나는로그피나는
경우 , 답 제품은 동일한 것이다.β1= ⋯ = β케이= 0
그렇지 않으면 입니다. 에 의해 베이커의 정리 , 우리는 하한 수
| Λ |
특정 상수 C에 대해 > 2 - C log n . 따라서 다음은 Λ 의 부호를 올바르게 계산합니다 .Λ ≠ 0
| Λ | > 2− C로그엔
씨Λ
- 의 부호를 출력합니다 . 여기서 π i 는 log p i ~ m : = C log n + k + 1 비트 정확도 의 근사값입니다 .∑케이나는 = 1β나는π나는π나는로그피나는m : = C로그n + k + 1
을 2 개의 m- 비트 정수 의 곱셈 비용 이라고하자 . 현재 최고 한계는 M ( m ) =미디엄( m )미디엄 , 여기서 우리는 사소한 O ( m 2 ) 곱셈 알고리즘을사용하더라도 큰 차이는 없습니다. 우리는 계산할 수 로그 P I를 에게 m의 시각 정밀도의 비트 O ( M ( m ) 로그 m ) 사용 AGM 반복 (예를 참조여기평가 후) 및 Σ 제가 β I π 나는 시간 소요 O를 ( M ( m )미디엄( m ) = O ( m로그미디엄2O ( 로그※m ))오 ( m2)로그피나는미디엄오 ( M( m ) 로그m )∑나는β나는π나는 . 전반적으로, 4 단계의 소요 시간 O ( M ( m ) 로그 m ) ⊆ O ( 로그 N을오 ( M( m ) ) .오 ( M( m ) 로그m ) ⊆ O ( 로그엔p o l y (로그로그n ) )
따라서, 알고리즘의 실행 시간은 제 1 단계의 에 의해 지배된다 .O ( n )