जैसा कि @DavidRicherby पहले से ही इंगित करता है, भ्रम पैदा होता है क्योंकि जटिलता के विभिन्न उपाय मिश्रित हो रहे हैं। लेकिन मुझे थोड़ा विस्तार से बताएं।
आमतौर पर, जब मनमाने छल्ले पर बहुपद गुणन के लिए एल्गोरिदम का अध्ययन करते हैं, तो एक अंगूठी में अंकगणितीय संचालन की संख्या में रुचि रखता है जो एक एल्गोरिथ्म का उपयोग करता है। विशेष रूप से, कुछ (विनिमेय, एकात्मक) अंगूठी दी , और दो बहुआयामी पद च , छ ∈ आर [ एक्स ] की तुलना में कम डिग्री के n , Schönhage-Strassen एल्गोरिथ्म की जरूरत हे ( एन लॉग इन करें n लॉग इन करें लॉग एन ) गुणा और परिवर्धन में आर क्रम में करने के लिए गणना च छ ∈ आर [ एक्स ]Rf,g∈R[X]nO(nlognloglogn)Rfg∈R[X]द्वारा, मोटे तौर पर, आसपास के करने के लिए एकता की मई के आदिम जड़ों आर कुछ बड़े अंगूठी प्राप्त करने के लिए डी ⊃ आर और फिर, फास्ट फूरियर से अधिक रूपांतरण का उपयोग कर डी , कंप्यूटिंग में उत्पाद डी ।nRD⊃RDD
अपने अंगूठी एक हैं, तो एकता की मई की जड़ है, तो यह करने के लिए तेज किया जा सकता है हे ( एन लॉग इन करें n ) में आपरेशन अनुसंधान फास्ट फूरियर सीधे रूपांतरण का उपयोग करके आर । विशेष रूप से, अधिक जेड ⊂ सी , तो आप इस का उपयोग कर सकते हे ( एन लॉग इन करें n ) अंगूठी परिचालन (तथ्य यह है कि इस जटिल संख्या पर सटीक गणित की आवश्यकता होगी अनदेखी)।nO(nlogn)RRZ⊂CO(nlogn)
अन्य उपाय जिसे ध्यान में रखा जा सकता है वह एक ऑपरेशन की थोड़ी जटिलता है। और यह है कि हम क्या जब बिट लंबाई के दो पूर्णांकों गुणा में रुचि रखते हैं है । यहां, आदिम संचालन दो अंकों को गुणा और जोड़ रहा है (कैरी के साथ)। इसलिए, जब Z पर दो बहुपद का गुणा करते हैं, तो आपको वास्तव में इस तथ्य को ध्यान में रखने की आवश्यकता होती है कि गणना के दौरान उत्पन्न होने वाली संख्याओं को एक आदिम संचालन की निरंतर संख्या का उपयोग करके गुणा नहीं किया जा सकता है। यह और तथ्य यह है कि Z में n > 2 के लिए एकता की n - n आदिम जड़ नहीं है, आपको O ( n लॉग एन ) को अपील करने से रोकता हैnZZnn>2O(nlogn)कलन विधि। आप पर विचार करके इस पर काबू पाने अंगूठी से गुणांक के साथ जेड / ⟨ 2 n + 1 ⟩ , के बाद से उत्पाद बहुपद के गुणांक से अधिक नहीं होगा इस बाध्य। वहाँ (जब n , आप (की अनुरूपता वर्ग) दो की एक शक्ति है) 2 एक के रूप में एन एकता की मई की जड़ है, और रिकर्सिवली गुणांक गुणा के लिए एल्गोरिथ्म को फोन करके, आप की कुल प्राप्त कर सकते हैं हे ( एन लॉग इन करें n लॉग लॉग एन ) आदिम (यानी, बिट) संचालन। इसके बाद पूर्णांक गुणा तक ले जाता है।f,gZ/⟨2n+1⟩n2nO(nlognloglogn)
एक उदाहरण के लिए जो अच्छी तरह से रिंग संचालन और आदिम संचालन के बीच अंतर के महत्व को रेखांकित करता है, बहुपद के मूल्यांकन के लिए दो तरीकों पर विचार करें: हॉर्नर की विधि और एस्ट्रिन की विधि। होर्नर की विधि एक बहुपद का मूल्यांकन करता है कुछ पर एक्स ∈ जेड पहचान का दुरुपयोग करके
च ( एक्स ) = ( ... ( च n एक्स + च n - 1 ) एक्स + ... + ... ) +f=∑ni=0fiXix∈Z
जबकि ऊपर Estrin की विधि विभाजन च दो भागों में
एच = n / 2 Σ मैं = 1 च n / 2 + मैं एक्स मैं और
एल = n / 2 Σ मैं = 0 च मैं एक्स मैं
यानी, एच डिग्री के मामले में शामिल है > n / 2 और एल डिग्री के मामले ≤ n / 2 (मान n
f(x)=(…(fnx+fn−1)x+…+…)+f0
fH=∑i=1n/2fn/2+iXi
L=∑i=0n/2fiXi
H>n/2L≤n/2n सादगी के लिए दो की एक शक्ति है)।
f(x)
f(x)=H(x)xn/2+L(x)
nn+logn
n/2n/2Ω(n2)nO(n)O(nlogcn)=O~(n)c>0