विस्तारित यूक्लिडियन एल्गोरिथ्म: Difference between revisions
No edit summary |
No edit summary |
||
(14 intermediate revisions by 3 users not shown) | |||
Line 10: | Line 10: | ||
== विवरण == | == विवरण == | ||
मानक यूक्लिडियन एल्गोरिथ्म [[यूक्लिडियन | मानक यूक्लिडियन एल्गोरिथ्म [[Index.php?title=यूक्लिडियन विभाजनों|यूक्लिडियन विभाजनों]] के उत्तराधिकार से आगे बढ़ता है जिनके भागफल का उपयोग नहीं किया जाता है। अवशेष ही रखे जाते हैं। विस्तारित एल्गोरिथम के लिए, लगातार भागफल का उपयोग किया जाता है। अधिक सटीक रूप से, इनपुट के रूप में ए और बी के साथ मानक यूक्लिडियन एल्गोरिथ्म में एक अनुक्रम की गणना होती है <math>q_1,\ldots, q_k</math> भागफल और एक क्रम <math>r_0,\ldots, r_{k+1}</math> शेषफल कि तरह हैं. | ||
:<math> | :<math> | ||
\begin{align} | \begin{align} | ||
Line 21: | Line 21: | ||
</math> | </math> | ||
यूक्लिडियन विभाजन की यह मुख्य संपत्ति है कि दाईं ओर की असमानताएँ विशिष्ट रूप से परिभाषित होती हैं <math>q_i</math> और <math>r_{i+1}</math> से <math>r_{i-1}</math> और <math>r_{i}.</math> | यूक्लिडियन विभाजन की यह मुख्य संपत्ति है कि दाईं ओर की असमानताएँ विशिष्ट रूप से परिभाषित होती हैं <math>q_i</math> और <math>r_{i+1}</math> से <math>r_{i-1}</math> और <math>r_{i}.</math> | ||
जब कोई शेषफल तक पहुँचता है तो गणना बंद हो जाती है <math>r_{k+1}</math> जो शून्य है; सबसे बड़ा सामान्य विभाजक तब अंतिम गैर शून्य शेष | जब कोई शेषफल तक पहुँचता है तो गणना बंद हो जाती है <math>r_{k+1}</math> जो शून्य है; सबसे बड़ा सामान्य विभाजक तब होता है जब अंतिम गैर शून्य शेष हो <math>r_{k}.</math> | ||
विस्तारित यूक्लिडियन एल्गोरिथ्म समान रूप से आगे बढ़ता है, | विस्तारित यूक्लिडियन एल्गोरिथ्म समान रूप से आगे बढ़ता है, परंतु निम्नानुसार दो अन्य अनुक्रम को जोड़ता है. | ||
:<math> | :<math> | ||
Line 36: | Line 36: | ||
\end{align} | \end{align} | ||
</math> | </math> | ||
गणना | गणना कब समाप्त होती है <math>r_{k+1}=0</math> | ||
*<math>r_k</math> इनपुट का | *<math>r_k</math> इनपुट का महत्तम समापवर्तक है <math>a=r_0</math> और <math>b=r_1.</math> | ||
* बेज़ाउट गुणांक हैं <math>s_k</math> | * बेज़ाउट गुणांक हैं <math>s_k</math> <math>t_k,</math> <math>\gcd(a,b)=r_k=as_k+bt_k</math> | ||
* a और b के भागफल उनके महत्तम समापवर्तक द्वारा दिए गए हैं <math>s_{k+1}=\pm\frac{b}{\gcd(a,b)}</math> और <math>t_{k+1}=\pm\frac{a}{\gcd(a,b)}</math> | * a और b के भागफल उनके महत्तम समापवर्तक द्वारा दिए गए हैं <math>s_{k+1}=\pm\frac{b}{\gcd(a,b)}</math> और <math>t_{k+1}=\pm\frac{a}{\gcd(a,b)}</math> | ||
इसके | इसके अतिरिक्त, यदि ए और बी दोनों सकारात्मक हैं <math>\gcd(a,b)\neq\min(a,b)</math>, | ||
:<math>|s_i| \leq \left\lfloor\frac{b}{2\gcd(a,b)}\right\rfloor\quad \text{and} \quad |t_i| \leq \left\lfloor\frac{a}{2\gcd(a,b)}\right\rfloor</math> | :<math>|s_i| \leq \left\lfloor\frac{b}{2\gcd(a,b)}\right\rfloor\quad \text{and} \quad |t_i| \leq \left\lfloor\frac{a}{2\gcd(a,b)}\right\rfloor</math> | ||
<math>0\leq i \leq k,</math> <math>\lfloor x\rfloor</math> के [[अभिन्न अंग]] को दर्शाता है, जो कि {{mvar|x}} से अधिक नहीं सबसे बड़ा पूर्णांक है। | |||
इसका तात्पर्य है कि विस्तारित यूक्लिडियन एल्गोरिथ्म द्वारा प्रदान किए गए बेज़ाउट के गुणांक की जोड़ी बेज़ाउट गुणांक की न्यूनतम जोड़ी है, जैसा कि दोनों असमानताओं को संतुष्ट करने वाली अद्वितीय जोड़ी है। | इसका तात्पर्य है कि विस्तारित यूक्लिडियन एल्गोरिथ्म द्वारा प्रदान किए गए बेज़ाउट के गुणांक की जोड़ी बेज़ाउट गुणांक की न्यूनतम जोड़ी है, जैसा कि दोनों असमानताओं को संतुष्ट करने वाली अद्वितीय जोड़ी है। | ||
इसके | इसके अतिरिक्त, इसका अर्थ यह है कि एक [[कंप्यूटर प्रोग्राम]] द्वारा एक निश्चित आकार के पूर्णांक का उपयोग करके एल्गोरिथ्म को [[पूर्णांक अतिप्रवाह]] के बिना किया जा सकता है जो कि ए और बी से बड़ा है। | ||
=== उदाहरण === | === उदाहरण === | ||
निम्न तालिका दिखाती है कि विस्तारित यूक्लिडियन एल्गोरिथम इनपुट | निम्न तालिका दिखाती है कि विस्तारित यूक्लिडियन एल्गोरिथम इनपुट {{nowrap|{{green|240}}}} और {{nowrap|{{green|46}}}}. के साथ कैसे आगे बढ़ता है। सबसे बड़ा सामान्य विभाजक अंतिम गैर शून्य प्रविष्टि है, {{nowrap|{{red|2}}}} कॉलम शेष में। गणना पंक्ति 6 पर रुक जाती है, चूंकि इसमें शेष है {{nowrap|{{red|0}}}}. बेज़ाउट गुणांक दूसरी-से-अंतिम पंक्ति की अंतिम दो प्रविष्टियों में दिखाई देते हैं। वास्तव में, इसे सत्यापित करना आसान है {{nowrap|1={{magenta|−9}} × {{green|240}} + {{magenta|47}} × {{green|46}} = {{red|2}}}}. अंत में अंतिम दो प्रविष्टियाँ {{nowrap|{{cyan|23}}}} और {{nowrap|{{cyan|−120}}} चिह्न तक, इनपुट {{nowrap|{{green|46}}}} और {{nowrap|{{green|240}}}} के भागफल हैं। सबसे बड़ा सामान्य भाजक {{nowrap|{{red|2}}}} है। | ||
{| class="wikitable" style="text-align:right;" | {| class="wikitable" style="text-align:right;" | ||
Line 87: | Line 87: | ||
=== प्रमाण === | === प्रमाण === | ||
जैसे <math> 0\le r_{i+1}<|r_i|, </math> गैर-ऋणात्मक पूर्णांकों का घटता क्रम है (i = 2 )। इस प्रकार यह कुछ हद तक सूक्ष्म होना चाहिए <math> r_{k+1}=0.</math> यह साबित करता है कि एल्गोरिदम अंततः सूक्ष्म हो जाता है। | |||
जैसे <math> r_{i+1}= r_{i-1} - r_i q_i,</math> महत्तम समापवर्तक समान है <math>(r_{i-1}, r_i)</math> और <math>(r_{i}, r_{i+1}).</math> यह दर्शाता है कि इनपुट का महत्तम समापवर्तक <math>a=r_0, b=r_1 </math> के समान है <math> r_k, r_{k+1}=0.</math> इससे यह सिद्ध होता है <math> r_k </math> a और b का महत्तम समापवर्तक है। (इस बिंदु तक, प्रमाण शास्त्रीय यूक्लिडियन एल्गोरिथम के समान है।) | |||
जैसे <math> a=r_0</math> और <math> b=r_1,</math> हमारे पास है <math>as_i+bt_i=r_i</math> i = 0 और 1 के लिए। संबंध सभी के लिए प्रेरण द्वारा अनुसरण करता है <math>i>1</math>: | |||
:<math>r_{i+1} = r_{i-1} - r_i q_i = (as_{i-1}+bt_{i-1}) - (as_i+bt_i)q_i = (as_{i-1}-as_iq_i) + (bt_{i-1}-bt_iq_i) = as_{i+1}+bt_{i+1}.</math> | :<math>r_{i+1} = r_{i-1} - r_i q_i = (as_{i-1}+bt_{i-1}) - (as_i+bt_i)q_i = (as_{i-1}-as_iq_i) + (bt_{i-1}-bt_iq_i) = as_{i+1}+bt_{i+1}.</math> | ||
Line 99: | Line 99: | ||
:<math>A_i=\begin{pmatrix} s_{i-1} & s_i\\ t_{i-1} & t_i \end{pmatrix}.</math> | :<math>A_i=\begin{pmatrix} s_{i-1} & s_i\\ t_{i-1} & t_i \end{pmatrix}.</math> | ||
पुनरावृत्ति संबंध को मैट्रिक्स रूप में | पुनरावृत्ति संबंध को मैट्रिक्स रूप में पुनः लिखा जा सकता है | ||
:<math>A_{i+1} = A_i \cdot \begin{pmatrix} 0 & 1\\ 1 & -q_i \end{pmatrix}.</math> | :<math>A_{i+1} = A_i \cdot \begin{pmatrix} 0 & 1\\ 1 & -q_i \end{pmatrix}.</math> | ||
गणित का | गणित में मैट्रिक्स का निर्धारक <math>A_1</math> है। पूर्ववर्ती सूत्र में सबसे सही मैट्रिक्स का निर्धारक -1 है। यह इस प्रकार है <math>A_i</math><math>(-1)^{i-1}.</math>, <math>i=k+1,</math> <math>s_k t_{k+1}-t_k s_{k+1} = (-1)^k.</math> इसे बेजाउट की पहचान के रूप में देखने से यह पता चलता है कि <math>s_{k+1}</math>, <math>t_{k+1}</math> यह सह अभाज्य हैं। <math>as_{k+1}+bt_{k+1}=0</math> यह ऊपर सिद्ध हो चुका है और यूक्लिड की प्रमेयिका (लेम्मा) यह दर्शाती है कि वह <math>s_{k+1}</math> {{mvar|b}}, को विभाजित करता है, <math>b=ds_{k+1}</math> कुछ पूर्णांक के लिए {{mvar|d}}. द्वारा विभाजित करना <math>s_{k+1}</math> संबंध <math>as_{k+1}+bt_{k+1}=0</math> देता है <math>a=-dt_{k+1}.</math> इसलिए, <math>s_{k+1}</math> और <math>-t_{k+1}</math> कोप्राइम पूर्णांक हैं जो कि के भागफल हैं {{mvar|a}} और {{mvar|b}} एक सामान्य कारक द्वारा, जो इस प्रकार उनका सबसे बड़ा सामान्य विभाजक या इसका योगात्मक व्युत्क्रम है। | ||
अंतिम अभिकथन को सिद्ध करने के लिए, | अंतिम अभिकथन को सिद्ध करने के लिए, a और b दोनों धनात्मक हैं <math>\gcd(a,b)\neq\min(a,b)</math>., <math>a\neq b </math>, <math>a<b</math>, यह देखा जा सकता है कि EEA के तहत (a,b) के लिए s और t क्रम प्रारंभिक 0s और 1s तक, (b,a) के लिए t और s क्रम हैं। परिभाषाएँ तब दिखती हैं जब (ए, बी) स्थिति (बी, ए) स्थिति से कम हो जाती है। तो मान लीजिए <math>a>b</math> सामान्यता क्षति के अतिरिक्त होती है। | ||
यह देखा जा सकता है <math>s_2</math> 1 | यह देखा जा सकता है <math>s_2</math> 1 <math>s_3</math> (जो इसके द्वारा उपस्थित है <math>\gcd(a,b)\neq\min(a,b)</math>) एक ऋणात्मक पूर्णांक है। तत्पश्चात, द साइन इन <math>s_i</math> संकेत में वैकल्पिक और सही से परिमाण में वृद्धि, जो परिभाषाओं और तथ्य से आगमनात्मक रूप से अनुसरण करती है <math>q_i\geq 1</math> के लिए <math>1\leq i \leq k</math>, स्थिति <math>i=1</math> रखता है क्योंकि <math>a>b</math>. के लिए भी यही सच है <math>t_i</math> पहली कुछ शर्तों के बाद, उसी कारण से। इसके अतिरिक्त, यह देखना आसान है <math>q_k \geq 2</math> (जब ए और बी दोनों सकारात्मक हो <math>\gcd(a,b)\neq\min(a,b)</math>). इस प्रकार से , | ||
:<math>|s_{k+1}|=\left |\frac{b}{\gcd(a,b)} \right | \geq 2|s_k| \qquad \text{and} \qquad |t_{k+1}|= \left |\frac{a}{\gcd(a,b)} \right | \geq 2|t_k|.</math> | :<math>|s_{k+1}|=\left |\frac{b}{\gcd(a,b)} \right | \geq 2|s_k| \qquad \text{and} \qquad |t_{k+1}|= \left |\frac{a}{\gcd(a,b)} \right | \geq 2|t_k|.</math> | ||
यह इस तथ्य के साथ है कि <math>s_k,t_k</math> किसी भी पिछले की तुलना में निरपेक्ष मान से बड़े या बराबर हैं <math>s_i</math> या <math>t_i</math> | यह इस तथ्य के साथ है कि <math>s_k,t_k</math> किसी भी पिछले की तुलना में निरपेक्ष मान से बड़े या बराबर हैं <math>s_i</math> या <math>t_i</math> क्रमशः। | ||
== बहुपद विस्तारित यूक्लिडियन एल्गोरिथम == | == बहुपद विस्तारित यूक्लिडियन एल्गोरिथम == | ||
{{see also| | {{see also|बहुपद महानतम सामान्य विभाजक # बेज़ाउट की पहचान और विस्तारित GCD एल्गोरिथम}} | ||
एक [[क्षेत्र (गणित)]] में गुणांक वाले अविभाजित बहुपदों के लिए, सब कुछ समान रूप से काम करता है, यूक्लिडियन डिवीजन, बेज़ाउट की पहचान और विस्तारित यूक्लिडियन एल्गोरिथ्म। पहला अंतर यह है कि, यूक्लिडियन डिवीजन और एल्गोरिथम में, असमानता <math>0\le r_{i+1}<|r_i|</math> डिग्री पर असमानता द्वारा प्रतिस्थापित किया जाना है <math>\deg r_{i+1}<\deg r_i.</math> अन्यथा, इस आलेख में जो कुछ भी पहले आता है वह वही रहता है, केवल बहुपदों द्वारा पूर्णांकों को प्रतिस्थापित करके। | एक [[क्षेत्र (गणित)]] में गुणांक वाले अविभाजित बहुपदों के लिए, सब कुछ समान रूप से काम करता है, यूक्लिडियन डिवीजन, बेज़ाउट की पहचान और विस्तारित यूक्लिडियन एल्गोरिथ्म। पहला अंतर यह है कि, यूक्लिडियन डिवीजन और एल्गोरिथम में, असमानता <math>0\le r_{i+1}<|r_i|</math> डिग्री पर असमानता द्वारा प्रतिस्थापित किया जाना है <math>\deg r_{i+1}<\deg r_i.</math> अन्यथा, इस आलेख में जो कुछ भी पहले आता है वह वही रहता है, केवल बहुपदों द्वारा पूर्णांकों को प्रतिस्थापित करके। | ||
एक दूसरा अंतर विस्तारित यूक्लिडियन एल्गोरिथम द्वारा प्रदान किए गए बेज़ाउट गुणांक के आकार पर बाध्यता में निहित है, जो बहुपद | एक दूसरा अंतर विस्तारित यूक्लिडियन एल्गोरिथम द्वारा प्रदान किए गए बेज़ाउट गुणांक के आकार पर बाध्यता में निहित है, जो बहुपद स्थिति में अधिक सटीक है, जो निम्न प्रमेय के लिए अग्रणी है। | ||
यदि a और b दो शून्येतर बहुपद हैं, तो विस्तारित यूक्लिडियन एल्गोरिथम बहुपदों (s, t) का ऐसा अद्वितीय युग्म उत्पन्न करता है | यदि a और b दो शून्येतर बहुपद हैं, तो विस्तारित यूक्लिडियन एल्गोरिथम बहुपदों (s, t) का ऐसा अद्वितीय युग्म उत्पन्न करता है | ||
:<math>as+bt=\gcd(a,b)</math> | :<math>as+bt=\gcd(a,b)</math> | ||
और | और | ||
:<math>\deg s < \deg b - \deg (\gcd(a,b)), \quad \deg t < \deg a - \deg (\gcd(a,b)).</math> | :<math>\deg s < \deg b - \deg (\gcd(a,b)), \quad \deg t < \deg a - \deg (\gcd(a,b)).</math> | ||
एक तीसरा अंतर यह है कि, बहुपद | एक तीसरा अंतर यह है कि, बहुपद स्थिति में, सबसे बड़ा सामान्य भाजक एकमात्र गैर शून्य स्थिरांक द्वारा गुणन तक परिभाषित किया जाता है। स्पष्ट रूप से एक महानतम सामान्य विभाजक को परिभाषित करने के कई पद्यतियां हैं। | ||
गणित में, यह आवश्यक है कि सबसे बड़ा सामान्य विभाजक एक [[मोनिक बहुपद]] हो। इसे प्राप्त करने के लिए, आउटपुट के प्रत्येक तत्व को प्रमुख गुणांक द्वारा विभाजित करना पर्याप्त है <math>r_{k}.</math> यह अनुमति देता है कि, यदि a और b सहअभाज्य हैं, तो किसी को बेज़ाउट की असमानता के दाहिने हाथ की ओर 1 मिलता है। अन्यथा, कोई भी अशून्य स्थिरांक प्राप्त हो सकता है। [[कंप्यूटर बीजगणित]] में, बहुपदों में | गणित में, यह आवश्यक है कि सबसे बड़ा सामान्य विभाजक एक [[मोनिक बहुपद]] हो। इसे प्राप्त करने के लिए, आउटपुट के प्रत्येक तत्व को प्रमुख गुणांक द्वारा विभाजित करना पर्याप्त है <math>r_{k}.</math> यह अनुमति देता है कि, यदि a और b सहअभाज्य हैं, तो किसी को बेज़ाउट की असमानता के दाहिने हाथ की ओर 1 मिलता है। अन्यथा, कोई भी अशून्य स्थिरांक प्राप्त हो सकता है। [[कंप्यूटर बीजगणित]] में, बहुपदों में सामान्यतः पूर्णांक गुणांक होते हैं, और सबसे बड़े सामान्य विभाजक को सामान्य करने का यह नियम सुविधाजनक होने के लिए बहुत अधिक अंशों का परिचय देता है। | ||
पूर्णांक गुणांक वाले बहुपदों के | पूर्णांक गुणांक वाले बहुपदों के स्थिति में सबसे बड़े सामान्य विभाजक को सामान्य करने का दूसरा नियम प्रत्येक आउटपुट को [[सामग्री (बीजगणित)]] से विभाजित करना है <math>r_{k},</math> एक आदिम बहुपद (रिंग सिद्धांत) सबसे बड़ा सामान्य विभाजक प्राप्त करने के लिए। यदि इनपुट बहुपद सहअभाज्य हैं, तो यह सामान्यीकरण 1 के बराबर एक महानतम सामान्य भाजक भी प्रदान करता है। इस दृष्टिकोण का दोष यह है कि गणना के समय बहुत से अंशों की गणना और सरलीकरण किया जाना चाहिए। | ||
एक तीसरे दृष्टिकोण में | एक तीसरे दृष्टिकोण में एक तरह से # उपपरिणामी छद्म-शेष अनुक्रमों के एल्गोरिथम का विस्तार करना सम्मलित है। जो यूक्लिडियन एल्गोरिथम विस्तारित के समान है। यह अनुमति देता है कि पूर्णांक गुणांक वाले बहुपदों से प्रारंभ करते समय, गणना किए गए सभी बहुपदों में पूर्णांक गुणांक होते हैं। इसके अतिरिक्त, प्रत्येक गणना शेष <math>r_i</math> एक [[Index.php?title=उपपरिणामी|उपपरिणामी]] बहुपद है। विशेष रूप से, यदि इनपुट बहुपद सह अभाज्य हैं, तो बेज़ाउट की पहचान बन जाती है | ||
:<math>as+bt=\operatorname{Res}(a,b),</math> | :<math>as+bt=\operatorname{Res}(a,b),</math> | ||
जहाँ <math>\operatorname{Res}(a,b)</math> ए और बी के परिणाम को दर्शाता है। बेज़ाउट की पहचान के इस रूप में सूत्र में कोई भाजक नहीं है। यदि कोई [[परिणामी]] द्वारा सब कुछ विभाजित करता है तो उसमें दिखाई देने वाली परिमेय संख्याओं के लिए एक स्पष्ट साधारण भाजक के साथ शास्त्रीय बेज़ाउट की पहचान मिलती है। | |||
== स्यूडोकोड == | == स्यूडोकोड == | ||
{{hatnote| | {{hatnote|इस खंड और निम्नलिखित में, '''''div''''' एक सहायक कार्य है जो अपने बाएं तर्क के [[यूक्लिडियन डिवीजन]] के भागफल की गणना अपने सही तर्क से करता है।}} | ||
ऊपर वर्णित एल्गोरिथ्म को प्रयुक्त करने के लिए, पहले यह टिप्पणी करनी चाहिए कि प्रत्येक चरण में अनुक्रमित चर के केवल दो अंतिम मान आवश्यक हैं। इस प्रकार, स्मृति को बचाने के लिए, प्रत्येक अनुक्रमित चर को एकमात्र दो चरों द्वारा प्रतिस्थापित किया जाना चाहिए। | |||
सहजता के लिए, निम्नलिखित एल्गोरिथम [[समानांतर असाइनमेंट]] का उपयोग करता है। एक प्रोग्रामिंग भाषा में जिसमें यह सुविधा नहीं है, समानांतर निर्धारण को एक सहायक चर के साथ अनुकरण करने की आवश्यकता होती है। उदाहरण के लिए, पहला वाला, | |||
(पुरानी_आर, आर) := (आर, पुरानी_आर - भागफल * आर) | (पुरानी_आर, आर) := (आर, पुरानी_आर - भागफल * आर) | ||
के बराबर है | के बराबर है | ||
Line 158: | Line 160: | ||
जीसीडी द्वारा आउटपुट भागफल: , (टी, एस) | जीसीडी द्वारा आउटपुट भागफल: , (टी, एस) | ||
''a'' और ''b'' के भागफल उनके सबसे बड़े सामान्य विभाजक, जो आउटपुट है, में गलत चिह्न हो | ''a'' और ''b'' के भागफल उनके सबसे बड़े सामान्य विभाजक, जो आउटपुट है, उन में गलत चिह्न हो सकते है। गणना के अंत में इसे सही करना आसान है परंतु कोड को सरल बनाने के लिए यहां नहीं किया गया है। इसी तरह, यदि ''a'' या ''b'' शून्य है और दूसरा ऋणात्मक है, तो सबसे बड़ा सामान्य विभाजक जो आउटपुट है, ऋणात्मक है, और आउटपुट के सभी चिह्नों को बदलना होगा। | ||
<math>ax + by = \gcd(a, b)</math> बेज़ाउट को कोई भी हल कर सकता हैं <math>y</math> दिया गया <math>a, b, x, \gcd(a, b)</math>. इस प्रकार, उपरोक्त एल्गोरिथम का अनुकूलन केवल गणना करना है <math>s_k</math> अनुक्रम (जो बेज़ाउट गुणांक उत्पन्न करता है) : | |||
फ़ंक्शन विस्तारित_जीसीडी (ए, बी) | फ़ंक्शन विस्तारित_जीसीडी (ए, बी) | ||
Line 179: | Line 181: | ||
आउटपुट सबसे बड़ा सामान्य विभाजक: , old_r | आउटपुट सबसे बड़ा सामान्य विभाजक: , old_r | ||
चूंकि, कई स्थितियों में यह वास्तव में एक अनुकूलन नहीं है: जबकि मशीन पूर्णांकों (अर्थात, अंकों की एक निश्चित ऊपरी सीमा के साथ पूर्णांक) के साथ उपयोग किए जाने पर पूर्व एल्गोरिथ्म अतिप्रवाह के लिए अतिसंवेदनशील नहीं होता है, '' old_s * a '' का गुणन अतिप्रवाह कर सकता है, इस अनुकूलन को इनपुट तक सीमित कर सकता है जिसे आधे से कम अधिकतम आकार में प्रदर्शित किया जा सकता है। असीमित आकार के पूर्णांकों का उपयोग करते समय, गुणन और विभाजन के लिए आवश्यक समय पूर्णांकों के आकार के साथ द्विघात रूप से बढ़ता है। इसका तात्पर्य यह है कि अनुकूलन एक गुणन/विभाजन द्वारा छोटे पूर्णांकों के गुणन/विभाजनों के अनुक्रम को प्रतिस्थापित करता है, जिसके लिए एक साथ लिए गए संचालन की तुलना में अधिक कंप्यूटिंग समय की आवश्यकता होती है। | |||
== अंशों का सरलीकरण == | == अंशों का सरलीकरण == | ||
एक अंश {{math|{{sfrac|''a''|''b''}}}} विहित सरलीकृत रूप में है यदि {{math|''a''}} और {{math|''b''}} | एक अंश {{math|{{sfrac|''a''|''b''}}}} विहित सरलीकृत रूप में है यदि {{math|''a''}} और {{math|''b''}} सहअभाज्य हैं और {{math|''b''}} धनात्मक है। यह प्रामाणिक सरलीकृत रूप पूर्ववर्ती छद्म कोड की तीन आउटपुट लाइनों को बदलकर प्राप्त किया जा सकता है | ||
अगर {{math|1=''s'' = 0}} फिर आउटपुट विभाजन शून्य से | अगर {{math|1=''s'' = 0}} फिर आउटपुट विभाजन शून्य से | ||
अगर {{math|1=''s'' < 0}} तब {{math|1=''s'' := −''s''}}; {{math|1=''t'' := −''t''}} (नकारात्मक हर से बचने के लिए) | अगर {{math|1=''s'' < 0}} तब {{math|1=''s'' := −''s''}}; {{math|1=''t'' := −''t''}} (नकारात्मक हर से बचने के लिए) | ||
Line 188: | Line 190: | ||
'आउटपुट' {{math|{{sfrac|-''t''|''s''}}}} | 'आउटपुट' {{math|{{sfrac|-''t''|''s''}}}} | ||
इस एल्गोरिथ्म का प्रमाण इस तथ्य पर निर्भर करता है कि {{math|''s''}} और {{math|''t''}} दो सहअभाज्य पूर्णांक हैं जैसे कि {{math|1=''as'' + ''bt'' = 0}}, और इस तरह <math>\frac{a}{b} = -\frac{t}{s}</math>. | इस एल्गोरिथ्म का प्रमाण इस तथ्य पर निर्भर करता है कि {{math|''s''}} और {{math|''t''}} दो सहअभाज्य पूर्णांक हैं जैसे कि {{math|1=''as'' + ''bt'' = 0}}, और इस तरह <math>\frac{a}{b} = -\frac{t}{s}</math>. प्रामाणिक सरलीकृत रूप प्राप्त करने के लिए, यह सकारात्मक भाजक होने के लिए ऋण चिह्न को स्थानांतरित करने के लिए पर्याप्त है। | ||
यदि {{math|''b''}} विभाजित समान रूप से, एल्गोरिदम केवल एक पुनरावृत्ति निष्पादित करता है, और हमारे पास एल्गोरिथम के अंत में {{math|1=''s'' = 1}} है। यह एकमात्र स्थिति है जहां आउटपुट पूर्णांक है। | |||
== मॉड्यूलर संरचनाओं में गुणक व्युत्क्रम की गणना == | == मॉड्यूलर संरचनाओं में गुणक व्युत्क्रम की गणना == | ||
विस्तारित यूक्लिडियन एल्गोरिथ्म मॉड्यूलर संरचनाओं में गुणक व्युत्क्रमों की गणना के लिए आवश्यक उपकरण है, | विस्तारित यूक्लिडियन एल्गोरिथ्म मॉड्यूलर संरचनाओं में गुणक व्युत्क्रमों की गणना के लिए आवश्यक उपकरण है, सामान्यतः मॉड्यूलर अंकगणित और बीजगणितीय क्षेत्र विस्तारण। के अतिरिक्त वाली स्थिति का एक उल्लेखनीय उदाहरण गैर-प्रमुख क्रम के परिमित क्षेत्र हैं। | ||
=== मॉड्यूलर पूर्णांक === | === मॉड्यूलर पूर्णांक === | ||
{{main| | {{main|मॉड्यूलर अंकगणित}} | ||
अगर {{math|''n''}} एक धनात्मक पूर्णांक है, वलय {{math|[[Z/nZ|'''Z'''/''n'''''Z''']]}} सेट से पहचाना जा सकता है {{math|{0, 1, ..., ''n''-1}{{void}}}} | अगर {{math|''n''}} एक धनात्मक पूर्णांक है, तो वलय {{math|[[Z/nZ|'''Z'''/''n'''''Z''']]}} सेट से पहचाना जा सकता है {{math|{0, 1, ..., ''n''-1}{{void}}}} के साथ यूक्लिडियन विभाजन के अवशेष {{math|''n''}}, द्वारा की जा सकती है, योग और गुणन में शेष को सम्मलित किया जा सकता है योग और पूर्णांकों के गुणन के परिणाम के {{math|''n''}} द्वारा। {{math|'''Z'''/''n'''''Z'''}} के एक अवयव का गुणात्मक व्युत्क्रम होता है (अर्थात, यह एक इकाई (रिंग थ्योरी) है) यदि यह {{math|''n''}} के लिए [[Index.php?title=सहअभाज्य संख्या|सहअभाज्य संख्या]] है। विशेष रूप से, यदि n अभाज्य है, तो {{math|''a''}} का गुणक व्युत्क्रम होता है यदि यह शून्य नहीं है (सापेक्ष {{math|''n''}}). इस प्रकार {{math|'''Z'''/''n'''''Z'''}} एक क्षेत्र है यदि और एकमात्र {{math|''n''}} अभाज्य है। | ||
बेज़ाउट की पहचान इस बात | बेज़ाउट की पहचान इस बात पर महत्व देती है कि {{math|''a''}} और {{math|''n''}} सहअभाज्य हैं यदि और एकमात्र पूर्णांक {{math|''s''}} और {{math|''t''}} उपस्थित है | ||
:<math>ns+at=1</math> | :<math>ns+at=1</math> | ||
{{math|''n''}} मॉड्यूल को कम कर देता है | |||
:<math>at \equiv 1 \mod n.</math> | :<math>at \equiv 1 \mod n.</math> | ||
इस प्रकार {{math|''t''}}, या, अधिक सटीक रूप से, | इस प्रकार {{math|''t''}}, या, अधिक सटीक रूप से, {{math|''t''}} द्वारा {{math|''n''}} के विभाजन का शेष, एक मॉड्यूलो {{math|''n''}} का गुणात्मक व्युत्क्रम है। | ||
इस समस्या के लिए विस्तारित यूक्लिडियन एल्गोरिथम को अनुकूलित करने के लिए, किसी को यह टिप्पणी करनी चाहिए कि | इस समस्या के लिए विस्तारित यूक्लिडियन एल्गोरिथम को अनुकूलित करने के लिए, किसी को यह टिप्पणी करनी चाहिए कि {{math|''n''}} के बेज़ाउट गुणांक की आवश्यकता नहीं है, और इस प्रकार गणना करने की आवश्यकता नहीं है। साथ ही, सकारात्मक और n से कम परिणाम प्राप्त करने के लिए, कोई इस तथ्य का उपयोग कर सकता है कि एल्गोरिथम द्वारा प्रदान किया गया पूर्णांक {{math|''t''}} संतुष्ट करता है {{math|{{!}}''t''{{!}} < ''n''}}. अर्थात्, यदि {{math|''t'' < 0}}, है तो अंत में इसमें {{math|''n''}} जोड़ना चाहिए। इसका परिणाम स्यूडोकोड में होता है, जिसमें इनपुट n 1 से बड़ा पूर्णांक होता है। | ||
'फ़ंक्शन' उलटा (ए, एन) | 'फ़ंक्शन' उलटा (ए, एन) | ||
टी : = 0; न्यूट: = 1 | टी : = 0; न्यूट: = 1 | ||
Line 225: | Line 227: | ||
=== सरल बीजगणितीय क्षेत्र विस्तार === | === सरल बीजगणितीय क्षेत्र विस्तार === | ||
विस्तारित यूक्लिडियन एल्गोरिथ्म भी [[सरल | विस्तारित यूक्लिडियन एल्गोरिथ्म भी [[Index.php?title=सरल बीजगणितीय|सरल बीजगणितीय]] क्षेत्र विस्तार में गुणात्मक व्युत्क्रमों की गणना के लिए मुख्य उपकरण है। कूटलेखन और [[कोडिंग सिद्धांत]] में व्यापक रूप से उपयोग किया जाने वाला एक महत्वपूर्ण कारण है जो गैर-प्रमुख क्रम के परिमित क्षेत्रों का है। वास्तव में, अगर {{math|''p''}} एक प्रमुख संख्या है, और {{math|1=''q'' = ''p''<sup>''d''</sup>}}, व्यवस्था का क्षेत्र {{math|''q''}} का क्षेत्र {{math|''p''}} तत्वों के प्रमुख क्षेत्र का एक साधारण बीजगणितीय विस्तार है जो डिग्री {{math|''d''}} के एक [[अलघुकरणीय बहुपद]] की जड़ से उत्पन्न होता है। | ||
डिग्री डी के एक अलघुकरणीय बहुपद पी की जड़ से उत्पन्न क्षेत्र के एक साधारण बीजगणितीय विस्तार {{math|''L''}} को भागफल की अंगूठी से पहचाना जा सकता है और इसके तत्व {{math|''d''}} से कम डिग्री वाले बहुपदों के साथ विशेषण के अनुरूप हैं। {{math|''L''}} में जोड़ बहुपदों का योग है। {{math|''L''}} में गुणन बहुपदों के गुणनफल के {{math|''p''}} द्वारा यूक्लिडियन विभाजन का शेषफल है। इस प्रकार, {{math|''L''}} में अंकगणित को पूरा करने के लिए, यह ,एकमात्र परिभाषित करने के लिए बनी हुई है की गुणात्मक व्युत्क्रमों की गणना कैसे करें। यह विस्तारित यूक्लिडियन एल्गोरिथम द्वारा किया जाता है। | |||
मॉड्यूलर गुणात्मक व्युत्क्रम की गणना के लिए ऊपर दिए गए एल्गोरिदम के समान ही है। दो मुख्य अंतर हैं: सबसे पहले अंतिम | मॉड्यूलर गुणात्मक व्युत्क्रम की गणना के लिए ऊपर दिए गए एल्गोरिदम के समान ही है। दो मुख्य अंतर हैं: सबसे पहले अंतिम परंतु एक पंक्ति की आवश्यकता नहीं है, चूंकि जो बेज़ाउट गुणांक प्रदान किया जाता है वह हमेशा {{math|''d''}} डिग्री से कम होता है दूसरा, सबसे बड़ा सामान्य विभाजक जो प्रदान किया जाता है, तब जब इनपुट बहुपद सहअभाज्य होते हैं, तब {{math|''K''}} का कोई भी गैर शून्य तत्व हो सकता है; इस बेज़ाउट गुणांक (सामान्यतः सकारात्मक डिग्री का एक बहुपद) को इस तत्व के व्युत्क्रम से गुणा किया जाता है स्यूडोकोड में जो अनुसरण करता है, {{math|''p''}} एक से अधिक डिग्री का बहुपद है। | ||
समारोह उलटा (ए, पी) | समारोह उलटा (ए, पी) | ||
टी�: = 0; न्यूट: = 1 | |||
आर�:= पी; न्यूट �:= अ | |||
जबकि | जबकि न्यूट ≠ 0 करते हैं | ||
भागफल�:= आर डिव नियर | |||
(आर, | (आर,न्यूट)�:= (नया, आर - भागफल × न्यूट ) | ||
(t, | (t, न्यूट),:= (न्यूट, t − भागफल × न्यूट ) | ||
अगर डिग्री (आर)> 0 तो | अगर डिग्री (आर)> 0 तो | ||
रिटर्न या तो p | रिटर्न या तो p अलघुकरणीय नहीं है या a, p का गुणज है | ||
वापसी (1/आर) × टी | वापसी (1/आर) × टी | ||
Line 247: | Line 249: | ||
==== उदाहरण ==== | ==== उदाहरण ==== | ||
उदाहरण के लिए, यदि | उदाहरण के लिए, यदि परिमित क्षेत्र GF(28) को परिभाषित करने के लिए बहुपद p = x है<sup>8</sup> + x<sup>4</sup> + x<sup>3</sup> + x + 1, और a = x<sup>6</sup> + x<sup>4</sup> + x + 1 वह तत्व है जिसका व्युत्क्रम वांछित है, पुनः एल्गोरिथम निष्पादित करने से निम्न तालिका में वर्णित गणना में परिणाम मिलते हैं। क्रम 2 के क्षेत्रों में<sup>n</sup>, फ़ील्ड में प्रत्येक तत्व z के लिए -z = z और z + z = 0 है)। चूँकि 1 GF(2) का एकमात्र अशून्य तत्व है, स्यूडोकोड की अंतिम पंक्ति में समायोजन की आवश्यकता नहीं है। | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 292: | Line 294: | ||
| | | | ||
|} | |} | ||
इस प्रकार, व्युत्क्रम x<sup>7</sup>+ x<sup>6</sup> + x<sup>3</sup> + x है, जैसा कि दो तत्वों को एक साथ गुणा करके और [[परिमित क्षेत्र अंकगणित]] {{math|''p''}} के द्वारा शेषफल लेकर पुष्टि की जा सकती है। | |||
== दो से अधिक संख्याओं का मामला == | == दो से अधिक संख्याओं का मामला == | ||
कोई दो से अधिक संख्याओं | कोई दो से अधिक संख्याओं की स्थिति को पुनरावृत्त रूप से संभाल सकता है। पहले हम देखते हैं की <math>\gcd(a,b,c) = \gcd(\gcd(a,b),c)</math>. इसे सिद्ध करने के लिए <math>d=\gcd(a,b,c)</math>. जीसीडी की परिभाषा के अनुसार <math>d</math> का भाजक है <math>a</math> और <math>b</math>. इस प्रकार <math>\gcd(a,b)=k d</math> का भाजक है अतः <math>c=jd</math>, <math>u=\gcd(k,j)</math>. हमारे निर्माण से <math>u</math>, <math>ud | a,b,c</math>, <math>d</math> सबसे बड़ा भाजक है <math>u</math> एक इकाई (रिंग थ्योरी) है। उसके उपरान्त <math>ud=\gcd(\gcd(a,b),c)</math> परिणाम सिद्ध होता है। | ||
यदि <math>na + mb = \gcd(a,b)</math> वहाँ हैं तो <math>x</math> और <math>y</math> , <math>x\gcd(a,b) + yc = \gcd(a,b,c)</math> है तो अंतिम समीकरण होगा | |||
: <math>x(na + mb) + yc = (xn)a + (xm)b + yc = \gcd(a,b,c).\,</math> | : <math>x(na + mb) + yc = (xn)a + (xm)b + yc = \gcd(a,b,c).\,</math> | ||
तब हम एन नंबरों को लागू करने के लिए इंडक्शन का उपयोग करते हैं | |||
:<math>\gcd(a_1,a_2,\dots,a_n) =\gcd(a_1,\, \gcd(a_2,\, \gcd(a_3,\dots, \gcd(a_{n-1}\,,a_n))),\dots),</math> | :<math>\gcd(a_1,a_2,\dots,a_n) =\gcd(a_1,\, \gcd(a_2,\, \gcd(a_3,\dots, \gcd(a_{n-1}\,,a_n))),\dots),</math> | ||
Line 311: | Line 313: | ||
== संदर्भ == | == संदर्भ == | ||
* {{Cite book |title=[[ | * {{Cite book |title=[[कंप्यूटर प्रोग्रामिंग की कला]] |author-link=डोनाल्ड नुथ |first=डोनाल्ड |last=नुथ |publisher=एडिसन-वेस्ले }} Volume 2, Chapter 4. | ||
* [[ | * [[Index.php?title= थॉमस एच। कॉर्मेन|थॉमस एच। कॉर्मेन]], [[Index.php?title=चार्ल्स ई. लीज़रसन|चार्ल्स ई. लीज़रसन]], [[Index.php?title= रोनाल्ड एल रिवेस्ट|रोनाल्ड एल रिवेस्ट]], and [[Index.php?title=क्लिफर्ड स्टीन|क्लिफर्ड स्टीन]]. ''[[Index.php?title=एल्गोरिदम का परिचय|एल्गोरिदम का परिचय]]'', दूसरा संस्करण। एमआईटी प्रेस और मैकग्रा-हिल,2001. {{ISBN|0-262-03293-7}}. Pages 859–861 of section 31.2: Greatest common divisor. | ||
Line 320: | Line 322: | ||
{{number theoretic algorithms}} | {{number theoretic algorithms}} | ||
[[Category: | [[Category:Articles with hatnote templates targeting a nonexistent page]] | ||
[[Category:Collapse templates]] | |||
[[Category:Created On 07/02/2023]] | [[Category:Created On 07/02/2023]] | ||
[[Category:Lua-based templates]] | |||
[[Category:Machine Translated Page]] | |||
[[Category:Navigational boxes| ]] | |||
[[Category:Navigational boxes without horizontal lists]] | |||
[[Category:Pages with script errors]] | |||
[[Category:Short description with empty Wikidata description]] | |||
[[Category:Sidebars with styles needing conversion]] | |||
[[Category:Template documentation pages|Documentation/doc]] | |||
[[Category:Templates Vigyan Ready]] | |||
[[Category:Templates generating microformats]] | |||
[[Category:Templates that add a tracking category]] | |||
[[Category:Templates that are not mobile friendly]] | |||
[[Category:Templates that generate short descriptions]] | |||
[[Category:Templates using TemplateData]] | |||
[[Category:Wikipedia metatemplates]] | |||
[[Category:यूक्लिड]] | |||
[[Category:संख्या सैद्धांतिक एल्गोरिदम]] | |||
[[Category:स्यूडोकोड के उदाहरण वाले लेख]] |
Latest revision as of 16:47, 17 February 2023
अंकगणित और कंप्यूटर प्रोग्रामिंग में, विस्तारित यूक्लिडियन एल्गोरिथ्म का एक विस्तार है, और पूर्णांक a और b के सबसे बड़े सामान्य भाजक (gcd) के अतिरिक्त, बेज़ाउट के गुणांकों की भी गणना करता है। सर्वसमिका, जो कि पूर्णांक 'x' और 'y' हैं
यह एक प्रमाणित एल्गोरिदम है, चूंकि जीसीडी एकमात्र संख्या है जो एक साथ इस समीकरण को संतुष्ट कर सकती है और इनपुट को विभाजित कर सकती है। यह किसी को भी गणना करने की अनुमति देता है, बिना किसी अतिरिक्त लागत के, उनके सबसे बड़े सामान्य विभाजक द्वारा a और b के भागफल है।
विस्तारित यूक्लिडियन एल्गोरिथम एक बहुपद महानतम सामान्य विभाजक # बेज़ाउट की दो अविभाजित बहुपदों की पहचान के गुणांकों की गणना के लिए एक बहुत ही समान एल्गोरिथ्म को संदर्भित करता है।
विस्तारित यूक्लिडियन एल्गोरिथ्म विशेष रूप से तब उपयोगी होता है जब a और b सहअभाज्य हों। उस प्रावधान के साथ, x एक मापांक अंकगणित b का मॉड्यूलर गुणात्मक व्युत्क्रम है, और y b मॉड्यूलो a का मॉड्यूलर गुणात्मक व्युत्क्रम है। इसी तरह, बहुपद विस्तारित यूक्लिडियन एल्गोरिथ्म एक को बीजगणितीय क्षेत्र विस्तार में गुणक व्युत्क्रम की गणना करने की अनुमति देता है, और विशेष रूप से गैर प्रधान क्रम के परिमित क्षेत्रों में। यह इस प्रकार है कि दोनों विस्तारित यूक्लिडियन एल्गोरिदम कूटलेखन में व्यापक रूप से उपयोग किए जाते हैं। विशेष रूप से, आरएसए (एल्गोरिदम) सार्वजनिक कुंजी कूटलेखन विधि में कुंजी-जोड़े की व्युत्पत्ति मॉड्यूलर गुणक व्युत्क्रम की गणना एक आवश्यक कदम है।
विवरण
मानक यूक्लिडियन एल्गोरिथ्म यूक्लिडियन विभाजनों के उत्तराधिकार से आगे बढ़ता है जिनके भागफल का उपयोग नहीं किया जाता है। अवशेष ही रखे जाते हैं। विस्तारित एल्गोरिथम के लिए, लगातार भागफल का उपयोग किया जाता है। अधिक सटीक रूप से, इनपुट के रूप में ए और बी के साथ मानक यूक्लिडियन एल्गोरिथ्म में एक अनुक्रम की गणना होती है भागफल और एक क्रम शेषफल कि तरह हैं.
यूक्लिडियन विभाजन की यह मुख्य संपत्ति है कि दाईं ओर की असमानताएँ विशिष्ट रूप से परिभाषित होती हैं और से और जब कोई शेषफल तक पहुँचता है तो गणना बंद हो जाती है जो शून्य है; सबसे बड़ा सामान्य विभाजक तब होता है जब अंतिम गैर शून्य शेष हो विस्तारित यूक्लिडियन एल्गोरिथ्म समान रूप से आगे बढ़ता है, परंतु निम्नानुसार दो अन्य अनुक्रम को जोड़ता है.
गणना कब समाप्त होती है
- इनपुट का महत्तम समापवर्तक है और
- बेज़ाउट गुणांक हैं
- a और b के भागफल उनके महत्तम समापवर्तक द्वारा दिए गए हैं और
इसके अतिरिक्त, यदि ए और बी दोनों सकारात्मक हैं ,
के अभिन्न अंग को दर्शाता है, जो कि x से अधिक नहीं सबसे बड़ा पूर्णांक है।
इसका तात्पर्य है कि विस्तारित यूक्लिडियन एल्गोरिथ्म द्वारा प्रदान किए गए बेज़ाउट के गुणांक की जोड़ी बेज़ाउट गुणांक की न्यूनतम जोड़ी है, जैसा कि दोनों असमानताओं को संतुष्ट करने वाली अद्वितीय जोड़ी है।
इसके अतिरिक्त, इसका अर्थ यह है कि एक कंप्यूटर प्रोग्राम द्वारा एक निश्चित आकार के पूर्णांक का उपयोग करके एल्गोरिथ्म को पूर्णांक अतिप्रवाह के बिना किया जा सकता है जो कि ए और बी से बड़ा है।
उदाहरण
निम्न तालिका दिखाती है कि विस्तारित यूक्लिडियन एल्गोरिथम इनपुट 240 और 46. के साथ कैसे आगे बढ़ता है। सबसे बड़ा सामान्य विभाजक अंतिम गैर शून्य प्रविष्टि है, 2 कॉलम शेष में। गणना पंक्ति 6 पर रुक जाती है, चूंकि इसमें शेष है 0. बेज़ाउट गुणांक दूसरी-से-अंतिम पंक्ति की अंतिम दो प्रविष्टियों में दिखाई देते हैं। वास्तव में, इसे सत्यापित करना आसान है −9 × 240 + 47 × 46 = 2. अंत में अंतिम दो प्रविष्टियाँ 23 और {{nowrap|−120} चिह्न तक, इनपुट 46 और 240 के भागफल हैं। सबसे बड़ा सामान्य भाजक 2 है।
index i | quotient qi−1 | Remainder ri | si | ti |
---|---|---|---|---|
0 | 240 | 1 | 0 | |
1 | 46 | 0 | 1 | |
2 | 240 ÷ 46 = 5 | 240 − 5 × 46 = 10 | 1 − 5 × 0 = 1 | 0 − 5 × 1 = −5 |
3 | 46 ÷ 10 = 4 | 46 − 4 × 10 = 6 | 0 − 4 × 1 = −4 | 1 − 4 × −5 = 21 |
4 | 10 ÷ 6 = 1 | 10 − 1 × 6 = 4 | 1 − 1 × −4 = 5 | −5 − 1 × 21 = −26 |
5 | 6 ÷ 4 = 1 | 6 − 1 × 4 = 2 | −4 − 1 × 5 = −9 | 21 − 1 × −26 = 47 |
6 | 4 ÷ 2 = 2 | 4 − 2 × 2 = 0 | 5 − 2 × −9 = 23 | −26 − 2 × 47 = −120 |
प्रमाण
जैसे गैर-ऋणात्मक पूर्णांकों का घटता क्रम है (i = 2 )। इस प्रकार यह कुछ हद तक सूक्ष्म होना चाहिए यह साबित करता है कि एल्गोरिदम अंततः सूक्ष्म हो जाता है।
जैसे महत्तम समापवर्तक समान है और यह दर्शाता है कि इनपुट का महत्तम समापवर्तक के समान है इससे यह सिद्ध होता है a और b का महत्तम समापवर्तक है। (इस बिंदु तक, प्रमाण शास्त्रीय यूक्लिडियन एल्गोरिथम के समान है।)
जैसे और हमारे पास है i = 0 और 1 के लिए। संबंध सभी के लिए प्रेरण द्वारा अनुसरण करता है :
इस प्रकार और बेज़ाउट गुणांक हैं।
मैट्रिक्स पर विचार करें
पुनरावृत्ति संबंध को मैट्रिक्स रूप में पुनः लिखा जा सकता है
गणित में मैट्रिक्स का निर्धारक है। पूर्ववर्ती सूत्र में सबसे सही मैट्रिक्स का निर्धारक -1 है। यह इस प्रकार है , इसे बेजाउट की पहचान के रूप में देखने से यह पता चलता है कि , यह सह अभाज्य हैं। यह ऊपर सिद्ध हो चुका है और यूक्लिड की प्रमेयिका (लेम्मा) यह दर्शाती है कि वह b, को विभाजित करता है, कुछ पूर्णांक के लिए d. द्वारा विभाजित करना संबंध देता है इसलिए, और कोप्राइम पूर्णांक हैं जो कि के भागफल हैं a और b एक सामान्य कारक द्वारा, जो इस प्रकार उनका सबसे बड़ा सामान्य विभाजक या इसका योगात्मक व्युत्क्रम है।
अंतिम अभिकथन को सिद्ध करने के लिए, a और b दोनों धनात्मक हैं ., , , यह देखा जा सकता है कि EEA के तहत (a,b) के लिए s और t क्रम प्रारंभिक 0s और 1s तक, (b,a) के लिए t और s क्रम हैं। परिभाषाएँ तब दिखती हैं जब (ए, बी) स्थिति (बी, ए) स्थिति से कम हो जाती है। तो मान लीजिए सामान्यता क्षति के अतिरिक्त होती है।
यह देखा जा सकता है 1 (जो इसके द्वारा उपस्थित है ) एक ऋणात्मक पूर्णांक है। तत्पश्चात, द साइन इन संकेत में वैकल्पिक और सही से परिमाण में वृद्धि, जो परिभाषाओं और तथ्य से आगमनात्मक रूप से अनुसरण करती है के लिए , स्थिति रखता है क्योंकि . के लिए भी यही सच है पहली कुछ शर्तों के बाद, उसी कारण से। इसके अतिरिक्त, यह देखना आसान है (जब ए और बी दोनों सकारात्मक हो ). इस प्रकार से ,
यह इस तथ्य के साथ है कि किसी भी पिछले की तुलना में निरपेक्ष मान से बड़े या बराबर हैं या क्रमशः।
बहुपद विस्तारित यूक्लिडियन एल्गोरिथम
एक क्षेत्र (गणित) में गुणांक वाले अविभाजित बहुपदों के लिए, सब कुछ समान रूप से काम करता है, यूक्लिडियन डिवीजन, बेज़ाउट की पहचान और विस्तारित यूक्लिडियन एल्गोरिथ्म। पहला अंतर यह है कि, यूक्लिडियन डिवीजन और एल्गोरिथम में, असमानता डिग्री पर असमानता द्वारा प्रतिस्थापित किया जाना है अन्यथा, इस आलेख में जो कुछ भी पहले आता है वह वही रहता है, केवल बहुपदों द्वारा पूर्णांकों को प्रतिस्थापित करके।
एक दूसरा अंतर विस्तारित यूक्लिडियन एल्गोरिथम द्वारा प्रदान किए गए बेज़ाउट गुणांक के आकार पर बाध्यता में निहित है, जो बहुपद स्थिति में अधिक सटीक है, जो निम्न प्रमेय के लिए अग्रणी है।
यदि a और b दो शून्येतर बहुपद हैं, तो विस्तारित यूक्लिडियन एल्गोरिथम बहुपदों (s, t) का ऐसा अद्वितीय युग्म उत्पन्न करता है
और
एक तीसरा अंतर यह है कि, बहुपद स्थिति में, सबसे बड़ा सामान्य भाजक एकमात्र गैर शून्य स्थिरांक द्वारा गुणन तक परिभाषित किया जाता है। स्पष्ट रूप से एक महानतम सामान्य विभाजक को परिभाषित करने के कई पद्यतियां हैं।
गणित में, यह आवश्यक है कि सबसे बड़ा सामान्य विभाजक एक मोनिक बहुपद हो। इसे प्राप्त करने के लिए, आउटपुट के प्रत्येक तत्व को प्रमुख गुणांक द्वारा विभाजित करना पर्याप्त है यह अनुमति देता है कि, यदि a और b सहअभाज्य हैं, तो किसी को बेज़ाउट की असमानता के दाहिने हाथ की ओर 1 मिलता है। अन्यथा, कोई भी अशून्य स्थिरांक प्राप्त हो सकता है। कंप्यूटर बीजगणित में, बहुपदों में सामान्यतः पूर्णांक गुणांक होते हैं, और सबसे बड़े सामान्य विभाजक को सामान्य करने का यह नियम सुविधाजनक होने के लिए बहुत अधिक अंशों का परिचय देता है।
पूर्णांक गुणांक वाले बहुपदों के स्थिति में सबसे बड़े सामान्य विभाजक को सामान्य करने का दूसरा नियम प्रत्येक आउटपुट को सामग्री (बीजगणित) से विभाजित करना है एक आदिम बहुपद (रिंग सिद्धांत) सबसे बड़ा सामान्य विभाजक प्राप्त करने के लिए। यदि इनपुट बहुपद सहअभाज्य हैं, तो यह सामान्यीकरण 1 के बराबर एक महानतम सामान्य भाजक भी प्रदान करता है। इस दृष्टिकोण का दोष यह है कि गणना के समय बहुत से अंशों की गणना और सरलीकरण किया जाना चाहिए।
एक तीसरे दृष्टिकोण में एक तरह से # उपपरिणामी छद्म-शेष अनुक्रमों के एल्गोरिथम का विस्तार करना सम्मलित है। जो यूक्लिडियन एल्गोरिथम विस्तारित के समान है। यह अनुमति देता है कि पूर्णांक गुणांक वाले बहुपदों से प्रारंभ करते समय, गणना किए गए सभी बहुपदों में पूर्णांक गुणांक होते हैं। इसके अतिरिक्त, प्रत्येक गणना शेष एक उपपरिणामी बहुपद है। विशेष रूप से, यदि इनपुट बहुपद सह अभाज्य हैं, तो बेज़ाउट की पहचान बन जाती है
जहाँ ए और बी के परिणाम को दर्शाता है। बेज़ाउट की पहचान के इस रूप में सूत्र में कोई भाजक नहीं है। यदि कोई परिणामी द्वारा सब कुछ विभाजित करता है तो उसमें दिखाई देने वाली परिमेय संख्याओं के लिए एक स्पष्ट साधारण भाजक के साथ शास्त्रीय बेज़ाउट की पहचान मिलती है।
स्यूडोकोड
ऊपर वर्णित एल्गोरिथ्म को प्रयुक्त करने के लिए, पहले यह टिप्पणी करनी चाहिए कि प्रत्येक चरण में अनुक्रमित चर के केवल दो अंतिम मान आवश्यक हैं। इस प्रकार, स्मृति को बचाने के लिए, प्रत्येक अनुक्रमित चर को एकमात्र दो चरों द्वारा प्रतिस्थापित किया जाना चाहिए।
सहजता के लिए, निम्नलिखित एल्गोरिथम समानांतर असाइनमेंट का उपयोग करता है। एक प्रोग्रामिंग भाषा में जिसमें यह सुविधा नहीं है, समानांतर निर्धारण को एक सहायक चर के साथ अनुकरण करने की आवश्यकता होती है। उदाहरण के लिए, पहला वाला,
(पुरानी_आर, आर) := (आर, पुरानी_आर - भागफल * आर)
के बराबर है
साबित: = आर; r := old_r - भागफल × सिद्ध; Old_r := सिद्ध;
और इसी तरह अन्य समांतर कार्यों के लिए। यह निम्न कोड की ओर जाता है:
फ़ंक्शन विस्तारित_जीसीडी (ए, बी) (ओल्ड_आर, आर) := (ए, बी) (पुराना_एस, एस) := (1, 0) (पुराना_टी, टी) := (0, 1) जबकि आर ≠ 0 करते हैं भागफल := old_r div r (old_r, r) := (r, old_r - भागफल × r) (old_s, s) := (s, old_s - भागफल × s) (old_t, t) := (t, old_t − भागफल × t) आउटपुट बेज़ाउट गुणांक: , (old_s, old_t) आउटपुट सबसे बड़ा सामान्य विभाजक: , old_r जीसीडी द्वारा आउटपुट भागफल: , (टी, एस)
a और b के भागफल उनके सबसे बड़े सामान्य विभाजक, जो आउटपुट है, उन में गलत चिह्न हो सकते है। गणना के अंत में इसे सही करना आसान है परंतु कोड को सरल बनाने के लिए यहां नहीं किया गया है। इसी तरह, यदि a या b शून्य है और दूसरा ऋणात्मक है, तो सबसे बड़ा सामान्य विभाजक जो आउटपुट है, ऋणात्मक है, और आउटपुट के सभी चिह्नों को बदलना होगा।
बेज़ाउट को कोई भी हल कर सकता हैं दिया गया . इस प्रकार, उपरोक्त एल्गोरिथम का अनुकूलन केवल गणना करना है अनुक्रम (जो बेज़ाउट गुणांक उत्पन्न करता है) :
फ़ंक्शन विस्तारित_जीसीडी (ए, बी) एस: = 0; ओल्ड_एस: = 1 आर := बी; ओल्ड_आर: = ए जबकि आर ≠ 0 करते हैं भागफल := old_r div r (old_r, r) := (r, old_r - भागफल × r) (old_s, s) := (s, old_s - भागफल × s) अगर बी ≠ 0 तो bezout_t := (old_r − old_s × a) div b अन्य बेज़ाउट_टी: = 0 आउटपुट बेज़ाउट गुणांक: , (old_s, bezout_t) आउटपुट सबसे बड़ा सामान्य विभाजक: , old_r
चूंकि, कई स्थितियों में यह वास्तव में एक अनुकूलन नहीं है: जबकि मशीन पूर्णांकों (अर्थात, अंकों की एक निश्चित ऊपरी सीमा के साथ पूर्णांक) के साथ उपयोग किए जाने पर पूर्व एल्गोरिथ्म अतिप्रवाह के लिए अतिसंवेदनशील नहीं होता है, old_s * a का गुणन अतिप्रवाह कर सकता है, इस अनुकूलन को इनपुट तक सीमित कर सकता है जिसे आधे से कम अधिकतम आकार में प्रदर्शित किया जा सकता है। असीमित आकार के पूर्णांकों का उपयोग करते समय, गुणन और विभाजन के लिए आवश्यक समय पूर्णांकों के आकार के साथ द्विघात रूप से बढ़ता है। इसका तात्पर्य यह है कि अनुकूलन एक गुणन/विभाजन द्वारा छोटे पूर्णांकों के गुणन/विभाजनों के अनुक्रम को प्रतिस्थापित करता है, जिसके लिए एक साथ लिए गए संचालन की तुलना में अधिक कंप्यूटिंग समय की आवश्यकता होती है।
अंशों का सरलीकरण
एक अंश a/b विहित सरलीकृत रूप में है यदि a और b सहअभाज्य हैं और b धनात्मक है। यह प्रामाणिक सरलीकृत रूप पूर्ववर्ती छद्म कोड की तीन आउटपुट लाइनों को बदलकर प्राप्त किया जा सकता है
अगर s = 0 फिर आउटपुट विभाजन शून्य से अगर s < 0 तब s := −s; t := −t (नकारात्मक हर से बचने के लिए) 'अगर' s = 1 फिर आउटपुट -t (1 के बराबर हर से बचने के लिए) 'आउटपुट' -t/s
इस एल्गोरिथ्म का प्रमाण इस तथ्य पर निर्भर करता है कि s और t दो सहअभाज्य पूर्णांक हैं जैसे कि as + bt = 0, और इस तरह . प्रामाणिक सरलीकृत रूप प्राप्त करने के लिए, यह सकारात्मक भाजक होने के लिए ऋण चिह्न को स्थानांतरित करने के लिए पर्याप्त है।
यदि b विभाजित समान रूप से, एल्गोरिदम केवल एक पुनरावृत्ति निष्पादित करता है, और हमारे पास एल्गोरिथम के अंत में s = 1 है। यह एकमात्र स्थिति है जहां आउटपुट पूर्णांक है।
मॉड्यूलर संरचनाओं में गुणक व्युत्क्रम की गणना
विस्तारित यूक्लिडियन एल्गोरिथ्म मॉड्यूलर संरचनाओं में गुणक व्युत्क्रमों की गणना के लिए आवश्यक उपकरण है, सामान्यतः मॉड्यूलर अंकगणित और बीजगणितीय क्षेत्र विस्तारण। के अतिरिक्त वाली स्थिति का एक उल्लेखनीय उदाहरण गैर-प्रमुख क्रम के परिमित क्षेत्र हैं।
मॉड्यूलर पूर्णांक
अगर n एक धनात्मक पूर्णांक है, तो वलय Z/nZ सेट से पहचाना जा सकता है {0, 1, ..., n-1} के साथ यूक्लिडियन विभाजन के अवशेष n, द्वारा की जा सकती है, योग और गुणन में शेष को सम्मलित किया जा सकता है योग और पूर्णांकों के गुणन के परिणाम के n द्वारा। Z/nZ के एक अवयव का गुणात्मक व्युत्क्रम होता है (अर्थात, यह एक इकाई (रिंग थ्योरी) है) यदि यह n के लिए सहअभाज्य संख्या है। विशेष रूप से, यदि n अभाज्य है, तो a का गुणक व्युत्क्रम होता है यदि यह शून्य नहीं है (सापेक्ष n). इस प्रकार Z/nZ एक क्षेत्र है यदि और एकमात्र n अभाज्य है।
बेज़ाउट की पहचान इस बात पर महत्व देती है कि a और n सहअभाज्य हैं यदि और एकमात्र पूर्णांक s और t उपस्थित है
n मॉड्यूल को कम कर देता है
इस प्रकार t, या, अधिक सटीक रूप से, t द्वारा n के विभाजन का शेष, एक मॉड्यूलो n का गुणात्मक व्युत्क्रम है।
इस समस्या के लिए विस्तारित यूक्लिडियन एल्गोरिथम को अनुकूलित करने के लिए, किसी को यह टिप्पणी करनी चाहिए कि n के बेज़ाउट गुणांक की आवश्यकता नहीं है, और इस प्रकार गणना करने की आवश्यकता नहीं है। साथ ही, सकारात्मक और n से कम परिणाम प्राप्त करने के लिए, कोई इस तथ्य का उपयोग कर सकता है कि एल्गोरिथम द्वारा प्रदान किया गया पूर्णांक t संतुष्ट करता है |t| < n. अर्थात्, यदि t < 0, है तो अंत में इसमें n जोड़ना चाहिए। इसका परिणाम स्यूडोकोड में होता है, जिसमें इनपुट n 1 से बड़ा पूर्णांक होता है।
'फ़ंक्शन' उलटा (ए, एन) टी : = 0; न्यूट: = 1 आर := एन; नया := अ 'जबकि' newr ≠ 0 'करो' भागफल := r 'div' newr (t, newt) := (newt, t − भागफल × newt) (आर, नया) := (नया, आर - भागफल × नया) 'अगर' आर> 1 'फिर' 'वापसी' उलटा नहीं है 'अगर' टी <0 'फिर' टी := टी + एन 'वापसी' टी
सरल बीजगणितीय क्षेत्र विस्तार
विस्तारित यूक्लिडियन एल्गोरिथ्म भी सरल बीजगणितीय क्षेत्र विस्तार में गुणात्मक व्युत्क्रमों की गणना के लिए मुख्य उपकरण है। कूटलेखन और कोडिंग सिद्धांत में व्यापक रूप से उपयोग किया जाने वाला एक महत्वपूर्ण कारण है जो गैर-प्रमुख क्रम के परिमित क्षेत्रों का है। वास्तव में, अगर p एक प्रमुख संख्या है, और q = pd, व्यवस्था का क्षेत्र q का क्षेत्र p तत्वों के प्रमुख क्षेत्र का एक साधारण बीजगणितीय विस्तार है जो डिग्री d के एक अलघुकरणीय बहुपद की जड़ से उत्पन्न होता है।
डिग्री डी के एक अलघुकरणीय बहुपद पी की जड़ से उत्पन्न क्षेत्र के एक साधारण बीजगणितीय विस्तार L को भागफल की अंगूठी से पहचाना जा सकता है और इसके तत्व d से कम डिग्री वाले बहुपदों के साथ विशेषण के अनुरूप हैं। L में जोड़ बहुपदों का योग है। L में गुणन बहुपदों के गुणनफल के p द्वारा यूक्लिडियन विभाजन का शेषफल है। इस प्रकार, L में अंकगणित को पूरा करने के लिए, यह ,एकमात्र परिभाषित करने के लिए बनी हुई है की गुणात्मक व्युत्क्रमों की गणना कैसे करें। यह विस्तारित यूक्लिडियन एल्गोरिथम द्वारा किया जाता है।
मॉड्यूलर गुणात्मक व्युत्क्रम की गणना के लिए ऊपर दिए गए एल्गोरिदम के समान ही है। दो मुख्य अंतर हैं: सबसे पहले अंतिम परंतु एक पंक्ति की आवश्यकता नहीं है, चूंकि जो बेज़ाउट गुणांक प्रदान किया जाता है वह हमेशा d डिग्री से कम होता है दूसरा, सबसे बड़ा सामान्य विभाजक जो प्रदान किया जाता है, तब जब इनपुट बहुपद सहअभाज्य होते हैं, तब K का कोई भी गैर शून्य तत्व हो सकता है; इस बेज़ाउट गुणांक (सामान्यतः सकारात्मक डिग्री का एक बहुपद) को इस तत्व के व्युत्क्रम से गुणा किया जाता है स्यूडोकोड में जो अनुसरण करता है, p एक से अधिक डिग्री का बहुपद है।
समारोह उलटा (ए, पी) टी�: = 0; न्यूट: = 1 आर�:= पी; न्यूट �:= अ जबकि न्यूट ≠ 0 करते हैं भागफल�:= आर डिव नियर (आर,न्यूट)�:= (नया, आर - भागफल × न्यूट ) (t, न्यूट),:= (न्यूट, t − भागफल × न्यूट ) अगर डिग्री (आर)> 0 तो रिटर्न या तो p अलघुकरणीय नहीं है या a, p का गुणज है वापसी (1/आर) × टी
उदाहरण
उदाहरण के लिए, यदि परिमित क्षेत्र GF(28) को परिभाषित करने के लिए बहुपद p = x है8 + x4 + x3 + x + 1, और a = x6 + x4 + x + 1 वह तत्व है जिसका व्युत्क्रम वांछित है, पुनः एल्गोरिथम निष्पादित करने से निम्न तालिका में वर्णित गणना में परिणाम मिलते हैं। क्रम 2 के क्षेत्रों मेंn, फ़ील्ड में प्रत्येक तत्व z के लिए -z = z और z + z = 0 है)। चूँकि 1 GF(2) का एकमात्र अशून्य तत्व है, स्यूडोकोड की अंतिम पंक्ति में समायोजन की आवश्यकता नहीं है।
step | quotient | r, newr | s, news | t, newt |
---|---|---|---|---|
p = x8 + x4 + x3 + x + 1 | 1 | 0 | ||
a = x6 + x4 + x + 1 | 0 | 1 | ||
1 | x2 + 1 | x2 = p - a (x2 + 1) | 1 | x2 + 1 = 0 - 1 × (x2 + 1) |
2 | x4 + x2 | x + 1 = a - x2 (x4 + x2) | x4+x2 = 0 - 1(x4+x2) | x6 + x2 + 1 = 1 - (x4 + x2) (x2 + 1) |
3 | x + 1 | 1 = x2 - (x + 1) (x + 1) | x5+x4+x3+x2+1 = 1 - (x +1)(x4 + x2) | x7 + x6 + x3 + x = (x2 + 1) - (x + 1) (x6 + x2 + 1) |
4 | x + 1 | 0 = (x + 1) - 1 × (x + 1) | x6 + x4 + x + 1 = (x4+x2) - (x+1)(x5+x4+x3+x2+1) |
इस प्रकार, व्युत्क्रम x7+ x6 + x3 + x है, जैसा कि दो तत्वों को एक साथ गुणा करके और परिमित क्षेत्र अंकगणित p के द्वारा शेषफल लेकर पुष्टि की जा सकती है।
दो से अधिक संख्याओं का मामला
कोई दो से अधिक संख्याओं की स्थिति को पुनरावृत्त रूप से संभाल सकता है। पहले हम देखते हैं की . इसे सिद्ध करने के लिए . जीसीडी की परिभाषा के अनुसार का भाजक है और . इस प्रकार का भाजक है अतः , . हमारे निर्माण से , , सबसे बड़ा भाजक है एक इकाई (रिंग थ्योरी) है। उसके उपरान्त परिणाम सिद्ध होता है।
यदि वहाँ हैं तो और , है तो अंतिम समीकरण होगा
तब हम एन नंबरों को लागू करने के लिए इंडक्शन का उपयोग करते हैं
सीधे निम्नलिखित समीकरणों के साथ।
यह भी देखें
- यूक्लिडियन डोमेन
- रेखीय सर्वांगसमता प्रमेय
- कुट्टक
संदर्भ
- नुथ, डोनाल्ड. कंप्यूटर प्रोग्रामिंग की कला. एडिसन-वेस्ले. Volume 2, Chapter 4.
- थॉमस एच। कॉर्मेन, चार्ल्स ई. लीज़रसन, रोनाल्ड एल रिवेस्ट, and क्लिफर्ड स्टीन. एल्गोरिदम का परिचय, दूसरा संस्करण। एमआईटी प्रेस और मैकग्रा-हिल,2001. ISBN 0-262-03293-7. Pages 859–861 of section 31.2: Greatest common divisor.