पॉलीनोमियल मल्टीप्लिकेशन (Polynomial multiplication) का व्यापक रूप से zero-knowledge proofs और गणितीय क्रिप्टोग्राफी (mathematical cryptography) में उपयोग किया जाता है। लेकिन पॉलीनोमियल्स को गुणा करने का ब्रूट फोर्स (brute force) या पारंपरिक तरीका में चलता है, जो छोटे इनपुट के लिए तो ठीक है लेकिन पॉलीनोमियल की डिग्री बढ़ने के साथ काफी महंगा हो जाता है। यह लेख पॉलीनोमियल मल्टीप्लिकेशन को तेज़ बनाने के तरीकों का पता लगाने के लिए इस पर विस्तृत नज़र डालता है।
- हम स्कूली/पारंपरिक पॉलीनोमियल अंकगणित (polynomial arithmetic) की समीक्षा से शुरुआत करते हैं
- इसके बाद पॉलीनोमियल्स के निरूपण (representation) के विभिन्न रूपों का अध्ययन करेंगे
- हम इन विभिन्न रूपों में पॉलीनोमियल अंकगणित की जांच और तुलना करते हैं
- अंत में, हम देखेंगे कि ये रूप कैसे संभावित रूप से पॉलीनोमियल मल्टीप्लिकेशन को तेज़ कर सकते हैं - और कैसे वे Number Theoretic Transform (NTT) नामक एल्गोरिथ्म का आधार बनाते हैं
पॉलीनोमियल मल्टीप्लिकेशन - पारंपरिक तरीका
मान लीजिए दो पॉलीनोमियल्स और हैं, जिनमें से प्रत्येक की डिग्री है:
जोड़ के ऊपर गुणा के वितरण (distribution of multiplication over addition) के सरल तरीके का उपयोग करके इन दो पॉलीनोमियल्स को गुणा करने में समय लगता है। यहाँ, के प्रत्येक पद (term) को के प्रत्येक पद से गुणा किया जाता है:
उदाहरण के लिए,
मान लें कि ,
और है।
तब,

जब इसे प्रोग्राम किया जाता है, तो इसे नेस्टेड लूप्स (nested loops) के रूप में लागू किया जाता है।
# Let A be array representing the coefficients of p1(x)
A = [a0, a1, ..., an]
# Let B be array representing the coefficients of p2(x)
B = [b0, b1, ..., bn]
# Let C be the array storing coefficients of p1(x).p2(x)
function multiply_polynomials(A, B):
n = len(A)
m = len(B)
C = array of zeros of length (n + m - 1)
for i from 0 to n - 1:
for j from 0 to m - 1:
C[i + j] += A[i] * B[j]
return C
आपको परिणाम इस प्रकार मिलेगा:
बाहरी लूप के प्रत्येक इटरेशन (iterations) के लिए, आंतरिक लूप n बार चलता है (समान डिग्री मानते हुए), इस प्रकार n गुणा n, यानी का रनटाइम मिलता है।
अब हम यह देखना चाहते हैं कि क्या हम इसे ऑप्टिमाइज़ (optimize) कर सकते हैं और बेहतर कर सकते हैं। या सीधे शब्दों में कहें तो, क्या पॉलीनोमियल मल्टीप्लिकेशन को तेज़ बनाने का कोई तरीका है?
पॉलीनोमियल को निरूपित (Represent) करने के तरीके
पॉलीनोमियल को निरूपित करने के दो तरीके हैं: कोएफ़िशिएंट फॉर्म (coefficient form) और पॉइंट फॉर्म (point form)।
कोएफ़िशिएंट फॉर्म (Coefficient Form)
पॉलीनोमियल्स को आमतौर पर मोनोमियल बेसिस (monomial basis) या कोएफ़िशिएंट फॉर्म में व्यक्त किया जाता है, जिसका अर्थ है कि इसे वेरिएबल (variable) की घातों (powers) के लीनियर कॉम्बिनेशन (linear combination) के रूप में लिखा जाता है।
उदाहरण के लिए, जब डिग्री के पॉलीनोमियल को इस प्रकार व्यक्त किया जाता है
तो यह मोनोमियल बेसिस में व्यक्त होता है, क्योंकि यह अपने गुणांकों (coefficients), जो हैं, के आधार के रूप में का उपयोग कर रहा है।
इस निरूपण में, के कोएफ़िशिएंट्स को एक वेक्टर (vector) या ऐरे (array) के रूप में लिखा जा सकता है, जैसे , जहाँ पहला एलीमेंट (element) अचर पद (constant term) या के कोएफ़िशिएंट से मेल खाता है, जबकि अंतिम एलीमेंट के कोएफ़िशिएंट से मेल खाता है।
आपको ध्यान देना चाहिए कि हमने पहले जिस डिस्ट्रीब्यूटिव मल्टीप्लिकेशन (distributive multiplication) विधि (रनटाइम ) को देखा था, वह पॉलीनोमियल्स के कोएफ़िशिएंट फॉर्म पर लागू की गई थी।
पॉइंट (या वैल्यू) फॉर्म
पॉइंट (या वैल्यू) फॉर्म निरूपण इस तथ्य पर आधारित है कि डिग्री के प्रत्येक पॉलीनोमियल को इस पर स्थित अलग-अलग बिंदुओं के एक सेट द्वारा निरूपित किया जा सकता है।
उदाहरण के लिए, एक क्वाड्रेटिक पॉलीनोमियल (quadratic polynomial) (डिग्री ) पर विचार करें:
अब इस वक्र (curve) पर स्थित कोई भी बिंदु (चूँकि ) लें, मान लीजिए , और । हम कह सकते हैं कि ये बिंदु दिए गए पॉलीनोमियल का प्रतिनिधित्व करते हैं। वैकल्पिक रूप से, यदि हमें केवल ये बिंदु दिए गए हैं, तो उस जानकारी से पॉलीनोमियल को पुनर्प्राप्त करना संभव है। यह काम कैसे करता है? या हम बिंदुओं के साथ डिग्री वाले पॉलीनोमियल को समतुल्य रूप से कैसे निरूपित करने में सक्षम हैं?
ऐसा इसलिए है क्योंकि:
अलग-अलग बिंदुओं के प्रत्येक सेट के लिए, अधिकतम डिग्री का एक अद्वितीय सबसे कम डिग्री (unique lowest degree) वाला पॉलीनोमियल मौजूद होता है जो उन सभी से होकर गुजरता है।
इस सबसे कम डिग्री वाले पॉलीनोमियल को Lagrange Polynomial कहा जाता है।
उदाहरण के लिए,
दिए गए दो बिंदुओं और से होकर गुजरने वाला डिग्री का एक अद्वितीय पॉलीनोमियल (एक रेखा) मौजूद है:
इसी प्रकार,
तीन बिंदुओं , , और को देखते हुए, इन बिंदुओं से होकर गुजरने वाला डिग्री का Lagrange polynomial है:
बिंदुओं का एक सेट दिए जाने पर इस विशेष पॉलीनोमियल की गणना कैसे की जाती है, इस पर Lagrange interpolation के इस लेख में चर्चा की गई है।
Lagrange Polynomial की विशिष्टता (Uniqueness)
आपको यह ध्यान रखना चाहिए कि बिंदुओं के एक सेट के लिए, एक दी गई डिग्री के कई पॉलीनोमियल्स होते हैं जो उन सभी से होकर गुजरते हैं। लेकिन केवल सबसे कम डिग्री वाला पॉलीनोमियल ही अद्वितीय (unique) होता है।
उदाहरण के लिए, ऊपर दिए गए बिंदुओं और के उदाहरण में, इन दो बिंदुओं से होकर गुजरने वाले कई पॉलीनोमियल्स मौजूद हैं:
और , डिग्री (क्वाड्रेटिक) के कई पॉलीनोमियल्स में से दो हैं जो इन दो बिंदुओं से होकर गुजरते हैं।

इसी तरह, यदि आप डिग्री पर विचार करते हैं, तो बिंदुओं और से गुजरने वाले दो उदाहरण पॉलीनोमियल्स और हैं।

लेकिन सबसे कम डिग्री के लिए, यहाँ , सबसे कम डिग्री का केवल एक ही पॉलीनोमियल मौजूद है, और वह है। यह अद्वितीय (unique) है, और डिग्री का कोई अन्य पॉलीनोमियल नहीं है जो इन दो दिए गए बिंदुओं से गुजर सके।

यह सबसे कम डिग्री कैसे निर्धारित की जाती है?
अलग-अलग बिंदुओं के प्रत्येक सेट के लिए, अधिकतम डिग्री का एक अद्वितीय पॉलीनोमियल होता है जो उनसे होकर गुजरता है। यदि कुछ बिंदु संरेख (collinear) हैं या किसी निचली डिग्री के पॉलीनोमियल पर स्थित हैं, तो अद्वितीय पॉलीनोमियल की डिग्री से कम होती है। इसलिए, हम “अधिकतम ” (at most ) शब्द का उपयोग उस मामले को कवर करने के लिए करते हैं जहाँ डिग्री बिल्कुल है, साथ ही उन मामलों में भी जहाँ डिग्री कम है।
उदाहरण के लिए,
बिंदुओं और को देखते हुए, उनसे होकर गुजरने वाला सबसे कम डिग्री का पॉलीनोमियल है। ऐसा इसलिए है क्योंकि बिंदु संरेख (collinear) हैं, यानी वे एक रेखा पर स्थित हैं। कोई भी जाँच कर सकता है कि उनमें से किसी भी जोड़े के बीच का ढलान (slope) समान है:
इसलिए, सबसे कम डिग्री है, और अद्वितीय Lagrange polynomial है।
इसी तरह,
पाँच बिंदु दिए जाने पर, हम पाते हैं कि वे सभी एक पैराबोला (parabola) पर स्थित हैं जिसका समीकरण है
यह एक ऐसा मामला है जहाँ सभी दिए गए बिंदु कम डिग्री वाले पॉलीनोमियल पर स्थित हैं, यहाँ डिग्री है, और इस प्रकार Lagrange polynomial की डिग्री है, जो से कम है (यहाँ, है)।
सबसे कम डिग्री वाले पॉलीनोमियल की विशिष्टता (uniqueness) के प्रमाण के लिए अंत में परिशिष्ट (Appendix) देखें।
कोएफ़िशिएंट फॉर्म और पॉइंट फॉर्म के बीच रूपांतरण (Conversion)
चूँकि कोएफ़िशिएंट फॉर्म और पॉइंट फॉर्म समतुल्य (equivalent) हैं, हम आसानी से उनके बीच रूपांतरण कर सकते हैं जैसा कि हम अब दिखा रहे हैं।
इंटरपोलेशन (पॉइंट फॉर्म → कोएफ़िशिएंट फॉर्म)
पॉइंट फॉर्म से कोएफ़िशिएंट फॉर्म में रूपांतरण, जिसे इंटरपोलेशन (interpolation) कहा जाता है, उस सबसे कम डिग्री के पॉलीनोमियल की गणना करना है जो सभी दिए गए बिंदुओं से होकर गुजरता है। इसे करने की सबसे प्रसिद्ध विधियों में से एक Lagrange Interpolation का उपयोग करना है, जिसका उल्लेख हमने पहले किया था। यदि आप इससे परिचित नहीं हैं, तो आप इस लेख को पढ़ सकते हैं।
संक्षेप में, अलग-अलग बिंदुओं का एक सेट दिए जाने पर
हम Lagrange interpolation के सूत्र का उपयोग करके अधिकतम डिग्री वाले अद्वितीय सबसे कम डिग्री के पॉलीनोमियल को ढूँढ सकते हैं, इस प्रकार कि:
आपको यह ध्यान में रखना चाहिए कि Lagrange interpolation का रनटाइम है।
इवैल्यूएशन (कोएफ़िशिएंट फॉर्म → पॉइंट फॉर्म)
कोएफ़िशिएंट फॉर्म से पॉइंट फॉर्म में रूपांतरण, जिसे इवैल्यूएशन (evaluation) कहा जाता है, में के मानों (values) पर पॉलीनोमियल का मूल्यांकन किया जाता है ताकि के संबंधित मान प्राप्त किए जा सकें, और इस प्रकार बिंदुओं का एक सेट मिलता है, जो पॉलीनोमियल का प्रतिनिधित्व करते हैं। इसे करने का एक सामान्य तरीका Horner’s rule का उपयोग करना है (जिस पर भविष्य के एक लेख में विस्तार से चर्चा की जाएगी)।
संक्षेप में, पॉलीनोमियल के कोएफ़िशिएंट्स और एक मान दिए जाने पर, Horner’s Method का मूल्यांकन इस प्रकार करता है:
यह विधि की कॉमन घातों (powers) को एक-एक करके फैक्टर आउट (factor out) करती है, जब तक कि सभी पदों को प्रोसेस न कर लिया जाए। इसे बेहतर ढंग से समझने के लिए आइए एक उदाहरण देखें।
दिए गए पॉलीनोमियल और एक मान के साथ, हम समीक्षा करेंगे कि Horner’s rule का मूल्यांकन कैसे करता है।
हम को इस प्रकार फिर से लिख सकते हैं (जैसा कि ऊपर सामान्यीकृत अभिव्यक्ति में दिखाया गया है):
प्रतिस्थापित (substitute) करने पर:

ध्यान दें कि कैसे इन चरणों में बारी-बारी से गुणा (multiplications) और जोड़ (additions) शामिल हैं। उपरोक्त गणना के चरण 1, 3 और 5 गुणा हैं, जबकि चरण 2, 4 और 6 जोड़ हैं। कुल मिलाकर, गुणा और जोड़ हैं (यहाँ है), जिससे कुल रनटाइम मिलता है। इस तरह Horner’s rule के दिए गए मान पर डिग्री के पॉलीनोमियल का में मूल्यांकन करता है।
इसलिए, अलग-अलग -मानों पर पॉलीनोमियल का मूल्यांकन करने - इस नियम का उपयोग करके कोएफ़िशिएंट से पॉइंट फॉर्म में परिवर्तित करने - में गुना , यानी का समय लगता है।
कोएफ़िशिएंट फॉर्म बनाम (VS) पॉइंट फॉर्म
हमने कहा कि पॉलीनोमियल का कोएफ़िशिएंट फॉर्म और पॉइंट फॉर्म समतुल्य हैं, और एक को दूसरे में परिवर्तित किया जा सकता है। यानी, जब किसी भी रूप में जोड़ (addition) और गुणा (multiplication) किया जाता है, तो अंतिम परिणामों में कोई अंतर नहीं होता है। आइए पहले जोड़ के एक उदाहरण के साथ इसकी जांच करें।
कोएफ़िशिएंट फॉर्म में जोड़ (Addition)
कोएफ़िशिएंट फॉर्म में दिए गए दो पॉलीनोमियल्स पर विचार करें,
या उनके संबंधित कोएफ़िशिएंट्स के ऐरे:
अब, दोनों पॉलीनोमियल्स को जोड़ने का मतलब है बस दोनों ऐरे को एलीमेंट-वाइज (element-wise) जोड़ना, और परिणामी कोएफ़िशिएंट ऐरे अंतिम पॉलीनोमियल का प्रतिनिधित्व करता है। आइए इसे सत्यापित (verify) करें:
या सीधे तौर पर,
डिग्री के दो पॉलीनोमियल्स के लिए, हम योग (sum) का निरूपण प्राप्त करने के लिए बार जोड़ करते हैं। इसलिए, कोएफ़िशिएंट फॉर्म में जोड़ का रनटाइम है।
पॉइंट फॉर्म में जोड़
उन्हीं दो पॉलीनोमियल्स पर विचार करें,
सबसे पहले, हमें उन्हें कोएफ़िशिएंट फॉर्म से पॉइंट फॉर्म में बदलना होगा। चूँकि दोनों पॉलीनोमियल्स की डिग्री है, इसलिए उनके योग की डिग्री भी अधिकतम होगी। इसलिए, हमें योग को निरूपित करने के लिए तीन बिंदुओं (डिग्री प्लस एक: ) की आवश्यकता है, जिसके लिए और प्रत्येक के मूल्यांकनों (evaluations) की आवश्यकता होती है।
आइए अपने बिंदु प्राप्त करने के लिए पर और का मूल्यांकन करें।
नोट: हम सरलता के लिए केवल चुन रहे हैं। आप मूल्यांकन के लिए कोई अन्य बिंदु चुन सकते हैं।
अब, दो पॉलीनोमियल्स को जोड़ने के लिए संबंधित मूल्यांकनों को एलीमेंट-वाइज जोड़ना आवश्यक है, यानी:
ये तीन बिंदु और हमें योग का पॉइंट निरूपण देते हैं। आइए हम सत्यापित करें कि क्या वे हमारे द्वारा पहले गणना किए गए पॉलीनोमियल को संतुष्ट करते हैं:
इसलिए, आप देखते हैं कि दोनों रूपों में जोड़ समान परिणाम देता है, या समान पॉलीनोमियल देता है, बस अलग-अलग तरीकों से निरूपित किया गया है।
पॉइंट फॉर्म जोड़ में, डिग्री के दो पॉलीनोमियल्स के लिए, उनमें से प्रत्येक का प्रतिनिधित्व करने वाले बिंदु होते हैं, और इस प्रकार हम योग के प्रतिनिधि बिंदुओं को प्राप्त करने के लिए बार एलीमेंट-वाइज जोड़ करते हैं। इसलिए, पॉइंट फॉर्म में जोड़ का रनटाइम है।
अब, आइए गुणा (multiplication) को भी करीब से देखें।
कोएफ़िशिएंट फॉर्म में गुणा
कोएफ़िशिएंट फॉर्म में दिए गए दो पॉलीनोमियल्स पर विचार करें:
या उनके संबंधित कोएफ़िशिएंट ऐरे:
और
पहले चर्चा की गई डिस्ट्रीब्यूटिव विधि का उपयोग करके उन्हें गुणा करने पर प्राप्त होता है:
परिणामी पॉलीनोमियल है, जिसे कोएफ़िशिएंट ऐरे द्वारा दर्शाया गया है। कोएफ़िशिएंट फॉर्म मल्टीप्लिकेशन की डिस्ट्रीब्यूटिव विधि में का समय लगता है, जैसा कि हमने इस लेख की शुरुआत में देखा था।
पॉइंट फॉर्म में गुणा
अब हम उन्हीं पॉलीनोमियल्स पर विचार करते हैं और उन्हें उनके पॉइंट फॉर्म में परिवर्तित करते हैं।
चूँकि दोनों पॉलीनोमियल्स की डिग्री है, उनके गुणनफल (product) की डिग्री अधिकतम होगी, जिसका अर्थ है कि इसे निरूपित करने के लिए हमें बिंदुओं की आवश्यकता है, जिसके लिए और प्रत्येक के 3 मूल्यांकनों की आवश्यकता होती है।
तो, आइए पर और का मूल्यांकन करें।
अब, उनके गुणनफल का प्रतिनिधित्व करने वाले बिंदु प्राप्त करने के लिए, हम मूल्यांकनों को एलीमेंट-वाइज गुणा करते हैं:
तो तीन बिंदु और हमें परिणामी गुणनफल का पॉइंट निरूपण देते हैं।
आइए सत्यापित करें कि क्या वे उस पॉलीनोमियल गुणनफल को संतुष्ट करते हैं जो हमें पहले मिला था:
इसलिए, आप देख सकते हैं कि दोनों रूपों में गुणा करने पर समान पॉलीनोमियल मिलता है, बस अलग-अलग तरीकों से निरूपित किया गया है।
संक्षेप में, डिग्री के दो पॉलीनोमियल्स और के लिए, उनके गुणनफल की डिग्री अधिकतम होगी, जिसका अर्थ है कि हमें इसे निरूपित करने के लिए बिंदुओं की आवश्यकता है। इस प्रकार, हम उन्हें पॉइंट फॉर्म में बदलने के लिए के समान मानों पर प्रत्येक पॉलीनोमियल के लिए मूल्यांकन करते हैं:
फिर हम इन दो सेटों को एलीमेंट-वाइज गुणा करके पॉइंट फॉर्म मल्टीप्लिकेशन करते हैं, जिसमें बार गुणा किया जाता है, यानी का रनटाइम लगता है।
यह हमें वे बिंदु देता है जो गुणनफल का प्रतिनिधित्व करते हैं:
यहाँ ध्यान देने वाली अद्भुत बात यह है कि, जबकि कोएफ़िशिएंट और पॉइंट फॉर्म दोनों में जोड़ में समान समय लगता है, पॉइंट फॉर्म में गुणा कोएफ़िशिएंट फॉर्म की तुलना में काफी तेज़ है। पॉइंट फॉर्म में, हम बार एलीमेंट-वाइज गुणा करते हैं, जिससे का रनटाइम मिलता है, जो कोएफ़िशिएंट फॉर्म गुणा के लिए आवश्यक से काफी बेहतर है!
हालाँकि, अभी भी एक समस्या है- हमने पॉइंट फॉर्म में और इसके विपरीत (vice versa) परिवर्तित करने के ओवरहेड (overhead) पर विचार नहीं किया है।
तो, आइए पॉइंट फॉर्म में गुणा करने की पूरी प्रक्रिया पर नज़र डालें, जिसमें तीन चरण शामिल हैं:
- कोएफ़िशिएंट से पॉइंट फॉर्म में रूपांतरण
हम गुणा किए जाने वाले डिग्री के दो पॉलीनोमियल्स का के मानों पर मूल्यांकन करते हैं, ताकि प्रत्येक के लिए मूल्यांकनों का एक सेट प्राप्त हो सके। Horner’s Method का उपयोग करने पर इसमें का समय लगता है। - पॉइंट फॉर्म निरूपण में एलीमेंट-वाइज गुणा
हम इन दो सेटों को एलीमेंट-वाइज गुणा करते हैं ताकि मूल्यांकन प्राप्त हो सकें जो उनके गुणनफल का पॉइंट फॉर्म निरूपण देते हैं। इसमें का समय लगता है। - पॉइंट से कोएफ़िशिएंट फॉर्म में रूपांतरण
हम उस अद्वितीय सबसे कम डिग्री वाले पॉलीनोमियल (कोएफ़िशिएंट फॉर्म) की गणना करते हैं जो सभी परिणामी बिंदुओं से होकर गुजरता है। Lagrange interpolation का उपयोग करने पर इसमें का समय लगता है।
इसलिए, उपरोक्त चरणों के लिए समग्र रनटाइम (overall runtime) है:
जो कि जहाँ से हमने शुरू किया था, उससे बेहतर नहीं है। इस प्रकार, हमें यह पता लगाने की आवश्यकता है कि क्या कोई ऑप्टिमाइज़ेशन इस प्रक्रिया को तेज़ बना सकता है।
रूपांतरण (Conversion) को ऑप्टिमाइज़ करना
ध्यान में रखने वाली मुख्य बात यह है कि कोएफ़िशिएंट फॉर्म में गुणा करने में समय लगता है, जबकि पॉइंट फॉर्म (एलीमेंट-वाइज) में गुणा करने में समय लगता है। इसलिए, यदि हम कोएफ़िशिएंट फॉर्म को पॉइंट फॉर्म में और इसके विपरीत (ऊपर बताए गए चरण 1 और 3) की तुलना में अधिक तेज़ी से परिवर्तित करने का कोई तरीका खोज सकें, तो हम गुणा को सब-क्वाड्रेटिक टाइम (sub-quadratic time) में चलाने के लिए ऑप्टिमाइज़ कर सकते हैं।
यह ध्यान रखना महत्वपूर्ण है कि हम पॉलीनोमियल जोड़ को ऑप्टिमाइज़ नहीं कर सकते हैं, क्योंकि कोएफ़िशिएंट फॉर्म और पॉइंट फॉर्म दोनों में जोड़ में चलता है।
तो अब आइए कुछ ऐसे तरीकों पर विचार करें जिनसे हम कोएफ़िशिएंट से पॉइंट फॉर्म में रूपांतरण को तेज़ बना सकते हैं।
क्या हो अगर हम एक ऐसा बिंदु जानते हों जिसका मूल्यांकन हमें कई संबंधित बिंदुओं के मान दे सके, जिससे हम बार-बार की जाने वाली गणनाओं से बच सकें?
उदाहरण के लिए, यदि हमारे पास एक सममित ग्राफ (symmetric graph) वाला पॉलीनोमियल है, तो एक बिंदु का मूल्यांकन हमें उसके संबंधित सममित बिंदु के लिए भी मूल्यांकन बता देगा।
पॉलीनोमियल पर विचार करें।
ध्यान दें कि कैसे,

या, अधिक सरलता से, ध्यान दें कि कैसे सभी के लिए,
यह केवल के लिए ही सही नहीं है, बल्कि उन सभी पॉलीनोमियल्स के लिए सामान्यीकृत (generalizes) होता है जिनमें केवल सम घात (even powered) वाले कोएफ़िशिएंट्स होते हैं, जिन्हें ईवन पॉलीनोमियल्स (even polynomials) भी कहा जाता है।
उदाहरण के लिए, ईवन पॉलीनोमियल (जिसमें की सम घातों वाले ही पद हों) पर विचार करें:

ऊपर दिए गए ग्राफ में, यह देखना आसान है कि
दृश्य रूप से (Visually) कहें, तो ईवन पॉलीनोमियल्स के ग्राफ -अक्ष (y-axis) के ओर मिरर (mirrored) होते हैं, और वे किसी भी दिए गए के धनात्मक (positive) और ऋणात्मक (negative) दोनों मानों के लिए समान का मूल्यांकन करते हैं।
उन ऑड (odd) पॉलीनोमियल्स के बारे में क्या जिनमें केवल विषम घात (odd powered) वाले कोएफ़िशिएंट्स होते हैं?
पर विचार करें।
ध्यान दें कि कैसे

ऊपर दिए गए ग्राफ में, ध्यान दें कि कैसे, सभी के लिए,
फिर से, यह केवल के लिए ही सच नहीं है, बल्कि सभी ऑड पॉलीनोमियल्स के लिए सामान्यीकृत होता है, यानी वे पॉलीनोमियल्स जिनमें की विषम घात वाले ही पद होते हैं। उदाहरण के लिए, इस पॉलीनोमियल पर विचार करें

ऊपर दिए गए ग्राफ में, ध्यान दें कि
दृश्य रूप से, सभी ऑड पॉलीनोमियल्स के ग्राफ मूल बिंदु (origin) के बारे में सममित (symmetric) होते हैं, जो उपरोक्त समानता (equality) को उन सभी के लिए सत्य बनाता है।
अब आप देख सकते हैं कि कुछ बिंदुओं का मूल्यांकन करने के बाद, हम बिना किसी अतिरिक्त गणना के अन्य बिंदुओं पर मूल्यांकन प्राप्त कर सकते हैं। उदाहरण के लिए, ऊपर दिए गए उदाहरणों में, ईवन और ऑड पॉलीनोमियल्स के लिए, के लिए मूल्यांकन जानने से हमें के लिए भी मूल्यांकन मिल जाता है।
हम पॉलीनोमियल मल्टीप्लिकेशन को तेज़ बनाने के लिए इस तथ्य का लाभ उठा सकते हैं, जो बिल्कुल वही है जो Number Theoretic Transform (NTT) नामक एक शानदार एल्गोरिथ्म हमें करने की अनुमति देता है। NTT कुछ बिंदुओं की समरूपता (symmetries) के गुणों का पुनरावर्ती (recursively) उपयोग करके में मूल्यांकन और इंटरपोलेशन को सक्षम बनाता है, जिससे रूपांतरण सब-क्वाड्रेटिक बन जाता है।
लेकिन चूंकि NTT एक सीमित क्षेत्र (finite field) पर काम करता है, इसलिए हमारे पास काम करने के लिए के कोई ऋणात्मक (negative) मान नहीं हैं। यहीं पर मल्टीप्लिकेटिव सबग्रुप्स (multiplicative subgroups), साइक्लिसिटी (cyclicity) और रूट्स ऑफ़ यूनिटी (roots of unity) की अवधारणाएं (concepts) सामने आती हैं। ये अवधारणाएँ हमें पॉलीनोमियल मल्टीप्लिकेशन को अधिक कुशलता से करने के लिए सीमित क्षेत्रों (finite fields) में मौजूद समरूपता (symmetries) का लाभ उठाने की अनुमति देंगी। हम आने वाले लेखों में विस्तार से जानेंगे कि NTT कैसे काम करता है।
परिशिष्ट (Appendix)
सबसे कम डिग्री वाले पॉलीनोमियल की विशिष्टता (Uniqueness) का प्रमाण
हम दिखाते हैं कि यदि समान डिग्री के दो पॉलीनोमियल्स और हैं जो बिंदुओं के एक सेट को इंटरपोलेट करते हैं, तो एक पॉलीनोमियल इस तरह मौजूद होना चाहिए कि हो।
फिर हम दिखाएंगे कि के लिए एकमात्र संभव समाधान है, अन्यथा हमारे पास एक ऐसा पॉलीनोमियल बचता है जिसकी जड़ों (roots) की संख्या उसकी डिग्री से अधिक है, जिसे हम दिखाते हैं कि यह असंभव है। आइए अब इन चरणों को विस्तार से देखें।
मान लेते हैं कि सबसे कम डिग्री का Lagrange polynomial अद्वितीय नहीं है। तो सबसे कम डिग्री के कम से कम दो अलग-अलग पॉलीनोमियल्स हैं जो सभी दिए गए बिंदुओं से होकर गुजरते हैं। मान लें कि ये दो पॉलीनोमियल्स और हैं। अब, पॉलीनोमियल को और के बीच के अंतर के रूप में परिभाषित करें।
अब, यदि हम दिखाते हैं कि के सभी मानों के लिए है, तो हम यह दिखा चुके होंगे कि , के बराबर है, और इसलिए Lagrange polynomial अद्वितीय है।
चूँकि और दोनों की डिग्री अधिकतम है, यह सरल बीजगणितीय घटाव (algebraic subtraction) से स्पष्ट होता है कि की डिग्री भी अधिकतम होनी चाहिए।
इसके अलावा, चूंकि और दोनों एक ही बिंदुओं से होकर गुजरते हैं, वे प्रत्येक -मान के लिए समान -मान का मूल्यांकन करेंगे।
नोट: ग्राफ़िक रूप से, जब दो अलग-अलग पॉलीनोमियल्स किसी दिए गए के लिए समान -मान का मूल्यांकन करते हैं, तो इसका मतलब है कि वे उस बिंदु पर एक-दूसरे को काटते (intersect) हैं। उदाहरण के लिए:

पर, दोनों देते हैं, इसलिए वे बिंदु पर प्रतिच्छेद (intersect) करते हैं। इस मामले में, हम अलग-अलग पॉलीनोमियल्स से निपट रहे हैं। किसी दिए गए के लिए समान होने की एक और संभावना यह है कि वे वास्तव में एक ही पॉलीनोमियल हैं! उस स्थिति में, उनके पास के सभी मानों के लिए समान होगा, न कि केवल के कुछ विशेष मानों के लिए।
और के मामले में, वे के कम से कम n + 1 अलग-अलग मानों के लिए समान हैं। इसे गणितीय रूप से इस प्रकार व्यक्त किया जा सकता है:
इसलिए, सभी बिंदुओं पर और के बीच का अंतर शून्य होगा। अर्थात,
इसलिए, बिंदुओं पर का मूल्यांकन शून्य होता है, जिसका अर्थ है कि यह एक ज़ीरो पॉलीनोमियल (zero polynomial) है। आइए अधिक स्पष्ट रूप से देखें कि ऐसा क्यों है।
एक ज़ीरो पॉलीनोमियल वह होता है जो के सभी मानों के लिए शून्य का मूल्यांकन करता है। ज़ीरो पॉलीनोमियल का सबसे सरल उदाहरण है:
इसे देखने का एक और तरीका यह है कि, यदि पॉलीनोमियल मूल्यांकन का हमारा डोमेन (domain) - उन बिंदुओं का सेट जिन पर पॉलीनोमियल का मूल्यांकन किया जा सकता है - मान लीजिए, है, तो इस डोमेन के लिए ज़ीरो पॉलीनोमियल यह हो सकता है:
क्योंकि,
हमारे पास डोमेन के लिए कई और ज़ीरो पॉलीनोमियल्स हो सकते हैं जैसे:
ध्यान दें कि और में से प्रत्येक डोमेन के लिए शून्य का मूल्यांकन करता है, और इस प्रकार यह एक ज़ीरो पॉलीनोमियल है। हमारे पास ऐसे कई और हो सकते हैं। सबसे प्रारंभिक (primitive) है, यानी स्वयं अचर (constant) शून्य।
नोट: यदि डोमेन को सभी वास्तविक संख्याओं (real numbers) के सेट के रूप में लिया जाता है, तो हमारे पास केवल एक ही ज़ीरो पॉलीनोमियल हो सकता है और वह है , क्योंकि कोई अन्य पॉलीनोमियल सभी वास्तविक संख्याओं के लिए शून्य का मूल्यांकन नहीं करेगा।
अब हमारे द्वारा देखे गए प्रत्येक उदाहरण ज़ीरो पॉलीनोमियल्स के लिए जड़ों (roots) की संख्या और डिग्री (degree) का निरीक्षण करें।
किसी पॉलीनोमियल की जड़ें डोमेन में वे मान होती हैं जिनके लिए पॉलीनोमियल शून्य का मूल्यांकन करता है, जबकि पॉलीनोमियल की डिग्री वेरिएबल की उच्चतम घात होती है, जैसा कि आप अच्छी तरह जानते हैं।
- जड़ें- , डिग्री-
- जड़ें- , डिग्री-
- जड़ें- , डिग्री-
वे सभी पर शून्य का मूल्यांकन करते हैं; इसलिए, जड़ों की संख्या है, जबकि , जिसकी डिग्री है, को संशोधित करके डिग्री को बदला जा सकता है।
यह भी ध्यान दें कि में जड़ों की संख्या उसकी डिग्री से अधिक है। यह केवल ज़ीरो पॉलीनोमियल के मामले में ही संभव है, विशेष रूप से प्रारंभिक (primitive) वाले के मामले में। अन्यथा, जड़ों की संख्या हमेशा डिग्री से कम या उसके बराबर होती है।
डिग्री के एक नॉन-ज़ीरो पॉलीनोमियल (non-zero polynomial) पर विचार करें; इसकी अधिकतम जड़ें हो सकती हैं (या -अक्ष के साथ प्रतिच्छेदन/intersections)। प्रारंभिक ज़ीरो पॉलीनोमियल ही एकमात्र अपवाद (exception) है, क्योंकि इसकी जड़ें इसकी डिग्री से अधिक होती हैं।
उदाहरण के लिए,
डिग्री का एक क्वाड्रेटिक समीकरण, जैसे , के दो रूट होते हैं, यानी और ।

एक क्वाड्रेटिक समीकरण के दो से अधिक रूट होने के लिए, यह शून्य के बराबर होना चाहिए, यानी ।
अब, अपने तर्क (argument) पर वापस आते हैं: चूंकि बिंदुओं पर शून्य का मूल्यांकन करता है, इसलिए इसके कम से कम रूट होने चाहिए, जो इसकी डिग्री से अधिक है। इसलिए शून्य के बराबर होना चाहिए।
इसका तात्पर्य है कि है, जिसका अर्थ है कि वे एक ही पॉलीनोमियल हैं। इसलिए, अलग-अलग बिंदुओं के सेट को इंटरपोलेट करने वाला सबसे कम डिग्री का पॉलीनोमियल अद्वितीय (unique) होता है।