बहुपद, जहां deg(A) = q
और deg(B) = p
। द deg(C) = q + p
।
इस मामले में, deg(C) = 1 + 2 = 3
।
A=3+xB=2x2+2C=A∗B=?
हम गुणांक के क्रूर-बल गुणन द्वारा C को O(n2) समय में आसानी से पा सकते हैं । FFT (और व्युत्क्रम FFT) को लागू करके, हम इसे O(nlog(n)) समय में प्राप्त कर सकते हैं । स्पष्ट रूप से:
- ए और बी के गुणांक प्रतिनिधित्व को इसके मूल्य प्रतिनिधित्व में परिवर्तित करें। इस प्रक्रिया को मूल्यांकन कहा जाता है । इसके लिए Divide-and-Conquer (D & C) को निष्पादित करने में O(nlog(n)) समय लगेगा।
- बहु-घटक-वार बहुपद को उनके मूल्य प्रतिनिधित्व में दर्शाते हैं। यह C = A * B का मान निरूपण लौटाता है। यह O(n) समय लेता है ।
- C को अपने गुणांक निरूपण में C प्राप्त करने के लिए व्युत्क्रम FFT का उपयोग करके C उलटा करें। इस प्रक्रिया को प्रक्षेप कहा जाता है और इसमें O(nlog(n)) समय भी लगता है ।
साथ-साथ चलते हुए, हम प्रत्येक बहुपद को एक सदिश के रूप में दर्शाते हैं जिसका मूल्य इसके गुणांक हैं। हम पैड 0 के साथ वेक्टर, दो की सबसे छोटी बिजली पर निर्भर है n=2k,n≥deg(C) । इस प्रकार n=4 । दो की शक्ति का चयन हमें अपने डिवाइड-एंड-कॉनकॉर एल्गोरिदम को पुनरावर्ती रूप से लागू करने का एक तरीका प्रदान करता है।
A=3+x+0x2+0x3⇒B=2+0x+2x+0x3⇒a⃗ =[3,1,0,0]b⃗ =[2,0,2,0]
चलो A′,B′ ए और बी का मूल्य प्रतिनिधित्व हो, क्रमशः। ध्यान दें कि एफएफटी (फास्ट फूरियर ट्रांसफॉर्म ) एक रैखिक परिवर्तन ( लीनियर मैप ) है और इसे मैट्रिक्स, M रूप में दर्शाया जा सकता है । इस प्रकार
A′=Ma→B′=Mb→
हम परिभाषित M=Mn(ω) जहां ω जटिल जड़ों है nth एकता की जटिल जड़ों। सूचना n = 4
, इस उदाहरण में। इसके अलावा सूचना है कि में प्रवेश jth पंक्ति और kth स्तंभ है ωjkn । यहां डीएफटी मैट्रिक्स के बारे में अधिक देखें
M4(w)=⎡⎣⎢⎢⎢⎢⎢⎢111...11ω1ω2...ωn−11ω2ω4...ω2(n−1).........ωjk...1ωn−1......ω(n−1)(n−1)⎤⎦⎥⎥⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢11111ωω2ω31ω2ω4ω61ω3ω6ω9⎤⎦⎥⎥⎥⎥
यह देखते हुए ω4=4th एकता की जड़ों, हम आदेश दिया है सेट समानता:
{ω0,ω1,ω2,ω3,ω4,ω5,...}={1,i,−1,−i,1,i,...}
इसे काउंटर-क्लॉकवाइज दिशा में इकाई सर्कल की जड़ों के पुनरावृति के रूप में देखा जा सकता है ।
इसके अलावा, नोटिस mod n
प्रकृति, यानी ω6=ω6modn=ω2=−1और−i=ω3=ω3+n
पूरा चरण 1 (करने के लिए मूल्यांकन ) हम पाते हैं A′,B′ प्रदर्शन से
A′=M∗a⃗ =⎡⎣⎢⎢⎢⎢11111ωω2ω31ω2ω4ω61ω3ω6ω9⎤⎦⎥⎥⎥⎥⎡⎣⎢⎢⎢3100⎤⎦⎥⎥⎥=⎡⎣⎢⎢⎢⎢3+13+1ω3+ω23+ω3⎤⎦⎥⎥⎥⎥=⎡⎣⎢⎢⎢43+i23−i⎤⎦⎥⎥⎥B′=M∗b⃗ =⎡⎣⎢⎢⎢⎢11111ωω2ω31ω2ω4ω61ω3ω6ω9⎤⎦⎥⎥⎥⎥⎡⎣⎢⎢⎢2020⎤⎦⎥⎥⎥=⎡⎣⎢⎢⎢⎢2+22+2ω22+2ω42+2ω6⎤⎦⎥⎥⎥⎥=⎡⎣⎢⎢⎢4040⎤⎦⎥⎥⎥
यह कदम डी एंड सी एल्गोरिदम (इस उत्तर के दायरे से परे) का उपयोग करके प्राप्त किया जा सकता है।
गुणा A′∗B′ घटक-वार (चरण 2)
A′∗B′=⎡⎣⎢⎢⎢43+i23−i⎤⎦⎥⎥⎥⎡⎣⎢⎢⎢4040⎤⎦⎥⎥⎥=⎡⎣⎢⎢⎢16080⎤⎦⎥⎥⎥=C′
अंत में, अंतिम चरण गुणांक में C 'का प्रतिनिधित्व करना है। नोटिस
C′=Mc⃗ ⇒M−1C′=M−1Mc⃗ ⇒c⃗ =M−1C′
M−1n=1nMn(ω−1)ωj=−ωn/2+j
M−1n=14⎡⎣⎢⎢⎢⎢11111ω−1ω−2ω−31ω−2ω−4ω−61ω−3ω−6ω−9⎤⎦⎥⎥⎥⎥=14⎡⎣⎢⎢⎢11111−i−1i1−11−11i−1−i⎤⎦⎥⎥⎥
ω−j
{ω0,ω−1,ω−2,ω−3,ω−4,ω−5,...}={1,−i,−1,i,1,−i,...}
nthω−j=ωn−j
c⃗ =M−1C′=1nMn(w−1)=14⎡⎣⎢⎢⎢11111−i−1i1−11−11i−1−i⎤⎦⎥⎥⎥⎡⎣⎢⎢⎢16080⎤⎦⎥⎥⎥=⎡⎣⎢⎢⎢⎢(16+8)/4(16−8)/4(16+8)/4(16−8)/4⎤⎦⎥⎥⎥⎥=⎡⎣⎢⎢⎢6262⎤⎦⎥⎥⎥
C=A∗B=6+2x+6x2+2x3