← SO25 객관식 전체 목차

FFT und Polynommultiplikation

FFT와 빠른 다항식 곱셈

중요한 독일어·영어 용어는 유지하되 설명과 학습 동선은 한국어 중심으로 제공합니다.

이 챕터의 문항별 독립 학습 페이지

단원 페이지에는 개요와 학습 순서만 둡니다. 각 문항의 용어·비유·수식·단계별 풀이·실제 채점은 아래 독립 페이지에서 이어집니다.

  1. II-18 · 2개 선택

    FFT에 관한 다음 네 문장 중 정확히 두 개를 고르시오.

    독립 개념 강의와 실제 채점 열기 →

30초 핵심 요약

30초 핵심

FFT(Fast Fourier Transform)는 다항식을 계수 표현에서 특수한 점들, 즉 복소 원시 단위근의 거듭제곱에서의 값 표현으로 빠르게 바꾸는 Divide-and-Conquer 알고리즘이다. 계수끼리 직접 convolution하면 두 차수 n-1 다항식 곱셈은 \(\Theta(n^{2})\)Θ(n²)이지만, FFT로 값 표현으로 바꾸고 점별로 곱한 뒤 IFFT로 돌아오면 전체가 \(\Theta(n \log n)\)Θ(n log n)이다.

핵심 수식·규칙

계수 표현 → \(\text{FFT} \to \)FFT →점별 곱셈\((\text{pointwise} \text{multiplication}) \to \)(pointwise multiplication) →\(\text{FFT}(\text{IFFT}) \to \)FFT(IFFT) →결과 계수 순서로 진행한다. 전체 시간은 \(\Theta(n \log n)\)Θ(n log n)+\(\Theta(n)\)Θ(n)+\(\Theta(n \log n)\)Θ(n log n)=\(\Theta(n \log n)\)Θ(n log n)이다.

시험에서 알아볼 신호

FFT가 metaheuristic인지, real-only인지, primitive root를 쓰는지, polynomial multiplication runtime을 줄이는지 묻는 문장은 category와 precondition부터 확인한다.

시험 연결

복기 원문 문항
  • II-18
선택 규칙

II부는 정답을 정확히 2개 고르는 방식\((\text{exactly}_{\text{two}})\)(exactly(two))이다. A~D 중 두 개를 선택해야 한다.

다른 문제로 옮겨 쓰는 목표

정답 암기가 아니라 FFT가 무엇을 변환하고, 왜 복소 단위근을 쓰며, 다항식 곱셈의 어느 단계가 \(\Theta(n^{2})\)Θ(n²)에서 \(\Theta(n \log n)\)Θ(n log n)으로 줄어드는지 판정하게 한다.

출처와 정확성 주의

목록에 적힌 원본 파일명은 문자 깨짐이 있지만, 로컬 파일과 코퍼스 조각을 통해 복원 시험 자료가 AuD Gedächtnisprotokoll SoSe 2025.md임을 확인했다. 독일어 움라우트는 의미가 명확한 곳만 복원했다.

강의 버전 메모

강의 7의 17~18쪽에서는 길이 n인 계수 배열을 곱셈에 필요한 2n개 점에서 평가하므로 FFTWrap에 2n차 원시근을 사용한다. 연습문제 12의 G3은 n개 점 평가에 n차 원시근을 사용한다. 따라서 'FFT가 n차 원시근을 쓴다'는 진술은 DFT/FFT의 일반 사실로 맞지만, 다항식 곱셈에서는 보통 2n개 또는 최소 2n-1개의 충분한 평가점을 골라야 한다.

먼저 알아야 할 용어와 전제

개념 강의

한국어 직관 설명

계수 표현에서 다항식 곱셈을 하면 각 계수 조합을 모두 더하는 convolution이라 느리다. FFT의 핵심은 문제를 더 쉬운 표현으로 옮기는 것이다. 여러 x값에서 p(x), q(x)를 이미 알고 있으면 \(r(x)=p(x)q(x)\)r(x)=p(x)q(x)는 각 점에서 그냥 곱하면 된다. 어려운 부분은 많은 점에서 빠르게 값을 구하고 다시 계수로 돌아오는 일인데, 복소 원시 단위근을 고르면 even/odd 분할이 재사용되어 Divide-and-Conquer가 된다.

정의

고속 푸리에 변환(FFT, Fast Fourier Transform)은 이산 푸리에 변환(DFT)을 \(\Theta(n \log n)\)Θ(n log n)에 계산하는 알고리즘이다. DFT는 계수 벡터 \(a_{0},...,a_{n-1}\)a₀,...,aₙ-1}를 원시 n차 단위근 ω_n의 거듭제곱에서 평가한 값 벡터로 바꾼다. 원시 m차 단위근(primitive m-th root of unity)은 ω_\(m^{m}=1\)mᵐ=1이고 \(1\le j<m\)1≤j<m에서는 ω_\(m^{j}\)m^j≠1을 만족하며, 복소수에서는 ω_\(m=\text{exp}(2\)m=exp(2πi/m)=cos(2π/m)+i sin(2π/m)로 쓸 수 있다. 점-값 표현(point-value representation)은 서로 다른 \(x_{j}\)xⱼ에 대한 쌍 \((x_{j},p(x_{j}))\)(xⱼ,p(xⱼ))로 다항식을 나타내는 방식이다.

선수 개념
  • 복소수 i와 exp(2πi/n)
  • 다항식 차수와 2n-1개의 점이 필요한 이유
  • 분할 정복 점화식(Divide-and-Conquer recurrence)
  • Θ 표기
불변식과 성질

짝수·홀수 차수 분할은 \(p(x)=p_{\text{even}}(x^{2})+x p_{\text{odd}}(x^{2})\)p(x)=p(even)(x²)+x p(odd)(x²)로 쓴다. 원시근은 제곱했을 때 짝을 이루는 성질이 있어 절반 크기 부분문제가 같은 평가점을 재사용한다. 점별 곱셈(pointwise product)을 하려면 p와 q를 반드시 같은 x 좌표에서 평가해야 한다. 또한 차수가 최대 m-1인 다항식은 서로 다른 m개의 점-값 쌍으로 유일하게 결정된다.

실행시간과 공간 복잡도

차수가 n-1인 두 다항식을 계수 합성곱으로 직접 곱하면 \(\Theta(n^{2})\)Θ(n²)이다. FFT 평가는 점화식 \(T(n)=2T(n/2)+\Theta(n)\)T(n)=2T(n/2)+Θ(n)에서 \(\Theta(n \log n)\)Θ(n log n)이 된다. 충분한 길이로 0을 채운 뒤 변환된 값을 점별로 곱하는 단계는 \(\Theta(n)\)Θ(n)이다. 역 FFT(IFFT)는 마지막에 n으로 나누는 단계까지 포함해 \(\Theta(n \log n)\)Θ(n log n)이므로, FFT 기반 다항식 곱셈 전체도 \(\Theta(n \log n)\)Θ(n log n)이다.

주요 경우와 경계 사례

차수가 n-1인 두 다항식의 곱은 차수가 최대 2n-2이므로 서로 다른 값이 최소 2n-1개 필요하다. 강의에서는 계산을 단순하게 하려고 2n개 점을 사용한다. n이 2의 거듭제곱이 아니면 0 계수를 덧붙이는 패딩(padding)을 사용할 수 있으며, 이는 점근 복잡도를 바꾸지 않는다. 원시근은 일반적으로 복소수이고, FFT는 휴리스틱 탐색이 아니라 정확한 대수 변환이다.

시험에서 주의할 표현
  • ausschließlich
  • keine komplexen Zahlen
  • Metaheuristik
  • primitive Einheitswurzel
  • vom Grad n-1
  • reduziert
  • \(\Theta(n^{2})\)Θ(n²)
  • \(\Theta(n \log n)\)Θ(n log n)
직접 해 보는 실험실

FFT·다항식 곱셈 실험실

다음 상태를 먼저 예측한 뒤 한 단계 실행하여 확인하세요.

준비됨

새 문장 판별 체크리스트

능동 회상

구두시험 질문

시험 직전 요약

핵심

FFT는 DFT를 \(\Theta(n \log n)\)Θ(n log n)에 계산하는 Divide-and-Conquer algorithm이다.

경계와 복잡도

계수 표현에서 직접 다항식을 곱하면 \(\Theta(n^{2})\)Θ(n²)이지만, FFT 기반 곱셈은 \(\Theta(n \log n)\)Θ(n log n)이다.

경계 사례

두 degree n-1 다항식의 product degree는 2n-2라서 최소 2n-1 points가 필요하고, 강의는 보통 2n 및 power-of-two padding을 쓴다.

판정 절차

메타휴리스틱이라는 설명은 거짓, 실수만 쓴다는 설명도 거짓이다. 원시근을 사용한다는 설명과 실행시간을 줄인다는 설명은 참이다.

출처

AI 후속 학습 프롬프트

마지막 생성: 2026-08-03 03:24