n번째 베르누이 수를 위한 준제곱 이하 알고리즘
초록
본 논문은 n번째 베르누이 수를 기존의 n² 수준에서 n^(4⁄3+o(1)) 비트 연산으로 계산할 수 있는 새로운 알고리즘을 제시한다. 고속 푸리에 변환과 뉴턴 반복을 결합한 분할정복 기법을 활용해 복잡도를 크게 낮추었다.
상세 분석
이 논문은 베르누이 수의 계산 문제를 정밀한 비트 복잡도 관점에서 재조명한다. 전통적으로 베르누이 수 Bₙ은 급수 전개 x/(eˣ−1) 의 계수로 정의되며, Akiyama‑Tanigawa 알고리즘이나 재귀적 합성법을 이용하면 O(n²) 비트 연산이 필요했다. 저자들은 이러한 한계를 극복하기 위해 두 가지 핵심 아이디어를 도입한다. 첫째, 베르누이 수를 고속 푸리에 변환(FFT) 기반의 다항식 곱셈으로 변환한다. 구체적으로, Bₙ은 ζ(1−n)와의 관계를 이용해 정수 계수 다항식 F(x)=x/(eˣ−1) 의 n차 계수를 추출하는 문제로 바뀐다. 이때 F(x)의 테일러 전개를 길이 ≈n 인 벡터로 표현하고, NTT(수론적 변환)를 사용해 다항식 곱셈을 O(n log n) 시간에 수행한다. 둘째, 뉴턴 반복을 통한 역시리즈 계산을 적용한다. 역시리즈 G(x)=1/F(x) 를 구하는 과정에서 고차항을 한 번에 얻기 위해 “분할‑정복” 전략을 사용한다. 즉, 현재까지 계산된 k차 이하 항을 이용해 2k 차까지 확장하고, 이 과정에서 필요한 곱셈을 모두 FFT로 가속화한다. 이러한 반복 구조는 전형적인 “Newton–Raphson for power series”와 동일하지만, 비트 복잡도 분석에서 각 단계의 정밀도(비트 길이) 증가를 정밀히 추적한다. 저자들은 각 단계에서 발생하는 오버플로우와 반올림 오류를 제어하기 위해 적절한 모듈러 변환을 도입하고, 최종 결과를 CRT(중국 나머지 정리)로 복원한다. 복잡도 분석에서는 다항식 차수가 n^(2/3) 정도로 감소하는 단계가 존재함을 보이며, 전체 알고리즘이 n^(4/3+o(1)) 비트 연산으로 수렴함을 증명한다. 특히, “대수적 정밀도 증가”와 “FFT 기반 곱셈 비용”을 결합한 비선형 점근식이 기존 O(n²) 상한을 크게 하회한다는 점이 핵심이다. 실험 결과는 n≈10⁶ 수준에서도 메모리 사용량이 O(n) 수준에 머물며, 실제 실행 시간도 이론적 복잡도와 일치함을 보여준다. 따라서 이 알고리즘은 대규모 베르누이 수 계산뿐 아니라, ζ 함수 특수값, 다항식 근사, 고정밀 수치 해석 등 다양한 분야에 파급 효과를 기대할 수 있다.