विस्तारित यूक्लिडियन एल्गोरिथ्म: Difference between revisions

From Vigyanwiki
(Created page with "{{short description|Method for computing the relation of two integers with their greatest common divisor}} अंकगणित और कंप्यूटर प्...")
 
No edit summary
 
(15 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{short description|Method for computing the relation of two integers with their greatest common divisor}}
{{short description|Method for computing the relation of two integers with their greatest common divisor}}
[[अंकगणित]] और [[कंप्यूटर प्रोग्रामिंग]] में, विस्तारित [[यूक्लिडियन एल्गोरिथ्म]] यूक्लिडियन एल्गोरिथ्म का एक विस्तार है, और पूर्णांकों ''a'' और ''b'' के सबसे बड़े सामान्य भाजक (gcd) के अलावा, बेज़ाउट के गुणांकों की भी गणना करता है। सर्वसमिका, जो कि पूर्णांक 'x' और 'y' हैं
[[अंकगणित]] और [[कंप्यूटर प्रोग्रामिंग]] में, विस्तारित [[यूक्लिडियन एल्गोरिथ्म]] का एक विस्तार है, और पूर्णांक ''a'' और ''b'' के सबसे बड़े सामान्य भाजक (gcd) के अतिरिक्त, बेज़ाउट के गुणांकों की भी गणना करता है। सर्वसमिका, जो कि पूर्णांक 'x' और 'y' हैं
: <math>ax + by = \gcd(a, b).</math>
: <math>ax + by = \gcd(a, b).</math>
यह एक प्रमाणित एल्गोरिदम है, क्योंकि जीसीडी एकमात्र संख्या है जो एक साथ इस समीकरण को संतुष्ट कर सकती है और इनपुट को विभाजित कर सकती है।
यह एक प्रमाणित एल्गोरिदम है, चूंकि जीसीडी एकमात्र संख्या है जो एक साथ इस समीकरण को संतुष्ट कर सकती है और इनपुट को विभाजित कर सकती है।
यह किसी को भी गणना करने की अनुमति देता है, बिना किसी अतिरिक्त लागत के, उनके सबसे बड़े सामान्य विभाजक द्वारा a और b के भागफल।
यह किसी को भी गणना करने की अनुमति देता है, बिना किसी अतिरिक्त लागत के, उनके सबसे बड़े सामान्य विभाजक द्वारा a और b के भागफल है।


{{em|Extended Euclidean algorithm}} एक बहुपद महानतम सामान्य विभाजक # बेज़ाउट की पहचान और बहुपद महानतम सामान्य भाजक की गणना के लिए विस्तारित जीसीडी एल्गोरिथ्म और बेज़ाउट की दो अविभाजित बहुपदों की पहचान के गुणांकों को भी संदर्भित करता है।
{{em|विस्तारित यूक्लिडियन एल्गोरिथम}} एक बहुपद महानतम सामान्य विभाजक # बेज़ाउट की दो अविभाजित बहुपदों की पहचान के गुणांकों की गणना के लिए एक बहुत ही समान एल्गोरिथ्म को संदर्भित करता है।


विस्तारित यूक्लिडियन एल्गोरिथ्म विशेष रूप से तब उपयोगी होता है जब a और b सहअभाज्य हों। उस प्रावधान के साथ, x एक [[मॉड्यूलर अंकगणित]]ीय b का मॉड्यूलर गुणात्मक व्युत्क्रम है, और y b मॉड्यूलो a का मॉड्यूलर गुणक व्युत्क्रम है। इसी तरह, बहुपद विस्तारित यूक्लिडियन एल्गोरिथ्म एक को बीजगणितीय क्षेत्र एक्सटेंशन में गुणक व्युत्क्रम की गणना करने की अनुमति देता है, और विशेष रूप से गैर प्रधान क्रम के [[परिमित क्षेत्र]]ों में। यह इस प्रकार है कि दोनों विस्तारित यूक्लिडियन एल्गोरिदम [[क्रिप्टोग्राफी]] में व्यापक रूप से उपयोग किए जाते हैं। विशेष रूप से, मॉड्यूलर गुणात्मक व्युत्क्रम की गणना [[आरएसए (एल्गोरिदम)]] सार्वजनिक कुंजी एन्क्रिप्शन विधि में की-जोड़े की व्युत्पत्ति में एक आवश्यक कदम है।
विस्तारित यूक्लिडियन एल्गोरिथ्म विशेष रूप से तब उपयोगी होता है जब a और b सहअभाज्य हों। उस प्रावधान के साथ, x एक [[Index.php?title= मापांक अंकगणित|मापांक अंकगणित]] b का मॉड्यूलर गुणात्मक व्युत्क्रम है, और y b मॉड्यूलो a का मॉड्यूलर गुणात्मक व्युत्क्रम है। इसी तरह, बहुपद विस्तारित यूक्लिडियन एल्गोरिथ्म एक को बीजगणितीय क्षेत्र विस्तार में गुणक व्युत्क्रम की गणना करने की अनुमति देता है, और विशेष रूप से गैर प्रधान क्रम के [[Index.php?title=परिमित क्षेत्रों|परिमित क्षेत्रों]] में। यह इस प्रकार है कि दोनों विस्तारित यूक्लिडियन एल्गोरिदम [[Index.php?title=कूटलेखन|कूटलेखन]] में व्यापक रूप से उपयोग किए जाते हैं। विशेष रूप से, [[आरएसए (एल्गोरिदम)]] सार्वजनिक कुंजी कूटलेखन विधि में कुंजी-जोड़े की व्युत्पत्ति मॉड्यूलर गुणक व्युत्क्रम की गणना एक आवश्यक कदम है।


== विवरण ==
== विवरण ==
मानक यूक्लिडियन एल्गोरिथ्म [[यूक्लिडियन विभाजन]] के उत्तराधिकार से आगे बढ़ता है जिनके भागफल का उपयोग नहीं किया जाता है। अवशेष ही रखे जाते हैं। विस्तारित एल्गोरिथम के लिए, लगातार भागफल का उपयोग किया जाता है। अधिक सटीक रूप से, इनपुट के रूप में ए और बी के साथ मानक यूक्लिडियन एल्गोरिथ्म में एक अनुक्रम की गणना होती है <math>q_1,\ldots, q_k</math> भागफल और एक क्रम <math>r_0,\ldots, r_{k+1}</math> अवशेषों का ऐसा है
मानक यूक्लिडियन एल्गोरिथ्म [[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}.</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+1}=0</math>  
*<math>r_k</math> इनपुट का सबसे बड़ा सामान्य विभाजक है <math>a=r_0</math> और <math>b=r_1.</math>
*<math>r_k</math> इनपुट का महत्तम समापवर्तक है <math>a=r_0</math> और <math>b=r_1.</math>
* बेज़ाउट गुणांक हैं <math>s_k</math> और <math>t_k,</math> वह है <math>\gcd(a,b)=r_k=as_k+bt_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>\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}}, वह सबसे बड़ा पूर्णांक है जो इससे बड़ा नहीं है {{mvar|x}}.
<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}}}}.
निम्न तालिका दिखाती है कि विस्तारित यूक्लिडियन एल्गोरिथम इनपुट {{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> का क्रम <math> r_i </math> गैर-ऋणात्मक पूर्णांकों का घटता क्रम है (i = 2 पर)। इस प्रकार यह कुछ के साथ बंद होना चाहिए <math> r_{k+1}=0.</math> यह साबित करता है कि एल्गोरिदम अंततः बंद हो जाता है।
जैसे <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> 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> 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}} एक सामान्य कारक द्वारा, जो इस प्रकार उनका सबसे बड़ा सामान्य विभाजक या इसका योगात्मक व्युत्क्रम है।
गणित में मैट्रिक्स का निर्धारक <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> व्यापकता के नुकसान के बिना।
अंतिम अभिकथन को सिद्ध करने के लिए, 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_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_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|Polynomial greatest common divisor#Bézout's identity and extended GCD algorithm}}
{{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_{k},</math> एक आदिम बहुपद (रिंग सिद्धांत) सबसे बड़ा सामान्य विभाजक प्राप्त करने के लिए। यदि इनपुट बहुपद सहअभाज्य हैं, तो यह सामान्यीकरण 1 के बराबर एक महानतम सामान्य भाजक भी प्रदान करता है। इस दृष्टिकोण का दोष यह है कि गणना के समय बहुत से अंशों की गणना और सरलीकरण किया जाना चाहिए।


एक तीसरे दृष्टिकोण में बहुपद महानतम सामान्य विभाजक # सब्रेसल्टेंट स्यूडो-रेमेन्डर सीक्वेंस के एल्गोरिथम का विस्तार करना शामिल है। सबरेसल्टेंट स्यूडो-रेमेन्डर सीक्वेंस इस तरह से है जो यूक्लिडियन एल्गोरिथम के विस्तारित यूक्लिडियन एल्गोरिथम के विस्तार के समान है। यह अनुमति देता है कि पूर्णांक गुणांक वाले बहुपदों से प्रारंभ करते समय, गणना किए गए सभी बहुपदों में पूर्णांक गुणांक होते हैं। इसके अलावा, प्रत्येक गणना शेष <math>r_i</math> एक [[परिणामी]] है। विशेष रूप से, यदि इनपुट बहुपद कोप्राइम हैं, तो बेज़ाउट की पहचान बन जाती है
एक तीसरे दृष्टिकोण में एक तरह से # उपपरिणामी छद्म-शेष अनुक्रमों के एल्गोरिथम का विस्तार करना सम्मलित है। जो यूक्लिडियन एल्गोरिथम विस्तारित के समान है। यह अनुमति देता है कि पूर्णांक गुणांक वाले बहुपदों से प्रारंभ करते समय, गणना किए गए सभी बहुपदों में पूर्णांक गुणांक होते हैं। इसके अतिरिक्त, प्रत्येक गणना शेष <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> ए और बी के परिणाम को दर्शाता है। बेज़ाउट की पहचान के इस रूप में सूत्र में कोई भाजक नहीं है। यदि कोई [[परिणामी]] द्वारा सब कुछ विभाजित करता है तो उसमें दिखाई देने वाली परिमेय संख्याओं के लिए एक स्पष्ट आम भाजक के साथ शास्त्रीय बेज़ाउट की पहचान मिलती है।
जहाँ <math>\operatorname{Res}(a,b)</math> ए और बी के परिणाम को दर्शाता है। बेज़ाउट की पहचान के इस रूप में सूत्र में कोई भाजक नहीं है। यदि कोई [[परिणामी]] द्वारा सब कुछ विभाजित करता है तो उसमें दिखाई देने वाली परिमेय संख्याओं के लिए एक स्पष्ट साधारण भाजक के साथ शास्त्रीय बेज़ाउट की पहचान मिलती है।


== स्यूडोकोड ==
== स्यूडोकोड ==
{{hatnote|In this section and the following ones, '''''div''''' is an auxiliary function that computes the quotient of the [[Euclidean division]] of its left argument by its right argument.}} ऊपर वर्णित एल्गोरिथ्म को लागू करने के लिए, पहले यह टिप्पणी करनी चाहिए कि प्रत्येक चरण में अनुक्रमित चर के केवल दो अंतिम मान आवश्यक हैं। इस प्रकार, स्मृति को बचाने के लिए, प्रत्येक अनुक्रमित चर को केवल दो चरों द्वारा प्रतिस्थापित किया जाना चाहिए।
{{hatnote|इस खंड और निम्नलिखित में, '''''div''''' एक सहायक कार्य है जो अपने बाएं तर्क के [[यूक्लिडियन डिवीजन]] के भागफल की गणना अपने सही तर्क से करता है।}}


सादगी के लिए, निम्नलिखित एल्गोरिथम (और इस लेख में अन्य एल्गोरिदम) [[समानांतर असाइनमेंट]] का उपयोग करता है। एक प्रोग्रामिंग भाषा में जिसमें यह सुविधा नहीं है, समानांतर असाइनमेंट को एक सहायक चर के साथ अनुकरण करने की आवश्यकता होती है। उदाहरण के लिए, पहला वाला,
ऊपर वर्णित एल्गोरिथ्म को प्रयुक्त करने के लिए, पहले यह टिप्पणी करनी चाहिए कि प्रत्येक चरण में अनुक्रमित चर के केवल दो अंतिम मान आवश्यक हैं। इस प्रकार, स्मृति को बचाने के लिए, प्रत्येक अनुक्रमित चर को एकमात्र दो चरों द्वारा प्रतिस्थापित किया जाना चाहिए।
 
सहजता के लिए, निम्नलिखित एल्गोरिथम [[समानांतर असाइनमेंट]] का उपयोग करता है। एक प्रोग्रामिंग भाषा में जिसमें यह सुविधा नहीं है, समानांतर निर्धारण को एक सहायक चर के साथ अनुकरण करने की आवश्यकता होती है। उदाहरण के लिए, पहला वाला,
  (पुरानी_आर, आर) := (आर, पुरानी_आर - भागफल * आर)
  (पुरानी_आर, आर) := (आर, पुरानी_आर - भागफल * आर)
के बराबर है
के बराबर है
Line 158: Line 160:
     जीसीडी द्वारा आउटपुट भागफल: , (टी, एस)
     जीसीडी द्वारा आउटपुट भागफल: , (टी, एस)


''a'' और ''b'' के भागफल उनके सबसे बड़े सामान्य विभाजक, जो आउटपुट है, में गलत चिह्न हो सकता है। गणना के अंत में इसे सही करना आसान है लेकिन कोड को सरल बनाने के लिए यहां नहीं किया गया है। इसी तरह, यदि या तो ''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> अनुक्रम (जो बेज़ाउट गुणांक उत्पन्न करता है <math>x</math>), और फिर गणना करें <math>y</math> अंत में:
<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 '' का गुणन ''bezout_t'' की गणना में अतिप्रवाह हो सकता है, इस अनुकूलन को इनपुट तक सीमित कर सकता है जिसे आधे से कम अधिकतम आकार में प्रदर्शित किया जा सकता है। असीमित आकार के पूर्णांकों का उपयोग करते समय, गुणन और विभाजन के लिए आवश्यक समय पूर्णांकों के आकार के साथ द्विघात रूप से बढ़ता है। इसका तात्पर्य यह है कि अनुकूलन एक गुणन/विभाजन द्वारा छोटे पूर्णांकों के गुणन/विभाजनों के अनुक्रम को प्रतिस्थापित करता है, जिसके लिए एक साथ लिए गए संचालन की तुलना में अधिक कंप्यूटिंग समय की आवश्यकता होती है।
चूंकि, कई स्थितियों में यह वास्तव में एक अनुकूलन नहीं है: जबकि मशीन पूर्णांकों (अर्थात, अंकों की एक निश्चित ऊपरी सीमा के साथ पूर्णांक) के साथ उपयोग किए जाने पर पूर्व एल्गोरिथ्म अतिप्रवाह के लिए अतिसंवेदनशील नहीं होता है, '' old_s * a '' का गुणन अतिप्रवाह कर सकता है, इस अनुकूलन को इनपुट तक सीमित कर सकता है जिसे आधे से कम अधिकतम आकार में प्रदर्शित किया जा सकता है। असीमित आकार के पूर्णांकों का उपयोग करते समय, गुणन और विभाजन के लिए आवश्यक समय पूर्णांकों के आकार के साथ द्विघात रूप से बढ़ता है। इसका तात्पर्य यह है कि अनुकूलन एक गुणन/विभाजन द्वारा छोटे पूर्णांकों के गुणन/विभाजनों के अनुक्रम को प्रतिस्थापित करता है, जिसके लिए एक साथ लिए गए संचालन की तुलना में अधिक कंप्यूटिंग समय की आवश्यकता होती है।


== अंशों का सरलीकरण ==
== अंशों का सरलीकरण ==
एक अंश {{math|{{sfrac|''a''|''b''}}}} विहित सरलीकृत रूप में है यदि {{math|''a''}} और {{math|''b''}} कोप्राइम और हैं {{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|''a''}} समान रूप से, एल्गोरिदम केवल एक पुनरावृत्ति निष्पादित करता है, और हमारे पास है {{math|1=''s'' = 1}} एल्गोरिथ्म के अंत में। यह एकमात्र मामला है जहां आउटपुट पूर्णांक है।
यदि {{math|''b''}} विभाजित समान रूप से, एल्गोरिदम केवल एक पुनरावृत्ति निष्पादित करता है, और हमारे पास एल्गोरिथम के अंत में {{math|1=''s'' = 1}} है। यह एकमात्र स्थिति है जहां आउटपुट पूर्णांक है।


== मॉड्यूलर संरचनाओं में गुणक व्युत्क्रम की गणना ==
== मॉड्यूलर संरचनाओं में गुणक व्युत्क्रम की गणना ==


विस्तारित यूक्लिडियन एल्गोरिथ्म मॉड्यूलर संरचनाओं में गुणक व्युत्क्रमों की गणना के लिए आवश्यक उपकरण है, आमतौर पर मॉड्यूलर अंकगणित और बीजगणितीय क्षेत्र एक्सटेंशन। बाद वाले मामले का एक उल्लेखनीय उदाहरण गैर-प्रमुख क्रम के परिमित क्षेत्र हैं।
विस्तारित यूक्लिडियन एल्गोरिथ्म मॉड्यूलर संरचनाओं में गुणक व्युत्क्रमों की गणना के लिए आवश्यक उपकरण है, सामान्यतः मॉड्यूलर अंकगणित और बीजगणितीय क्षेत्र विस्तारण। के अतिरिक्त वाली स्थिति का एक उल्लेखनीय उदाहरण गैर-प्रमुख क्रम के परिमित क्षेत्र हैं।


=== मॉड्यूलर पूर्णांक ===
=== मॉड्यूलर पूर्णांक ===
{{main|Modular arithmetic}}
{{main|मॉड्यूलर अंकगणित}}
अगर {{math|''n''}} एक धनात्मक पूर्णांक है, वलय {{math|[[Z/nZ|'''Z'''/''n'''''Z''']]}} सेट से पहचाना जा सकता है {{math|{0, 1, ..., ''n''-1}{{void}}}} द्वारा यूक्लिडियन विभाजन के अवशेष {{math|''n''}}, जोड़ और गुणा करके शेषफल लेना है {{math|''n''}} पूर्णांकों के जोड़ और गुणा के परिणाम का। तत्व {{math|''a''}} का {{math|'''Z'''/''n'''''Z'''}} एक गुणक व्युत्क्रम है (अर्थात, यह एक इकाई (रिंग थ्योरी) है) यदि यह कोप्राइम है {{math|''n''}}. विशेष रूप से, अगर {{math|''n''}} [[अभाज्य संख्या]] है, {{math|''a''}} गुणक व्युत्क्रम होता है यदि यह शून्य नहीं है (modulo {{math|''n''}}). इस प्रकार {{math|'''Z'''/''n'''''Z'''}} एक क्षेत्र है अगर और केवल अगर {{math|''n''}} प्रधान है।
अगर {{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|''a''}} और {{math|''n''}} सहअभाज्य हैं यदि और एकमात्र पूर्णांक {{math|''s''}} और {{math|''t''}} उपस्थित है  
:<math>ns+at=1</math>
:<math>ns+at=1</math>
इस पहचान मॉड्यूल को कम करना {{math|''n''}} देता है
{{math|''n''}} मॉड्यूल को कम कर देता है
:<math>at \equiv 1 \mod n.</math>
:<math>at \equiv 1 \mod n.</math>
इस प्रकार {{math|''t''}}, या, अधिक सटीक रूप से, के विभाजन का शेष भाग {{math|''t''}} द्वारा {{math|''n''}}, का गुणक प्रतिलोम है {{math|''a''}} मापांक {{math|''n''}}.
इस प्रकार {{math|''t''}}, या, अधिक सटीक रूप से, {{math|''t''}} द्वारा {{math|''n''}} के विभाजन का शेष, एक मॉड्यूलो {{math|''n''}} का गुणात्मक व्युत्क्रम है।


इस समस्या के लिए विस्तारित यूक्लिडियन एल्गोरिथम को अनुकूलित करने के लिए, किसी को यह टिप्पणी करनी चाहिए कि बेज़ाउट का गुणांक {{math|''n''}} की आवश्यकता नहीं है, और इस प्रकार गणना करने की आवश्यकता नहीं है। साथ ही, एक परिणाम प्राप्त करने के लिए जो धनात्मक है और n से कम है, कोई इस तथ्य का उपयोग कर सकता है कि पूर्णांक {{math|''t''}} एल्गोरिथ्म द्वारा प्रदान संतुष्ट {{math|{{!}}''t''{{!}} < ''n''}}. यानी अगर {{math|''t'' < 0}}, जोड़ना चाहिए {{math|''n''}} इसे अंत में। इसका परिणाम स्यूडोकोड में होता है, जिसमें इनपुट n 1 से बड़ा पूर्णांक होता है।
इस समस्या के लिए विस्तारित यूक्लिडियन एल्गोरिथम को अनुकूलित करने के लिए, किसी को यह टिप्पणी करनी चाहिए कि {{math|''n''}} के बेज़ाउट गुणांक की आवश्यकता नहीं है, और इस प्रकार गणना करने की आवश्यकता नहीं है। साथ ही, सकारात्मक और n से कम परिणाम प्राप्त करने के लिए, कोई इस तथ्य का उपयोग कर सकता है कि एल्गोरिथम द्वारा प्रदान किया गया पूर्णांक {{math|''t''}} संतुष्ट करता है {{math|{{!}}''t''{{!}} < ''n''}}. अर्थात्, यदि {{math|''t'' < 0}}, है तो अंत में इसमें {{math|''n''}} जोड़ना चाहिए। इसका परिणाम स्यूडोकोड में होता है, जिसमें इनपुट n 1 से बड़ा पूर्णांक होता है।
  'फ़ंक्शन' उलटा (ए, एन)
  'फ़ंक्शन' उलटा (ए, एन)
     टी : = 0; न्यूट: = 1
     टी : = 0; न्यूट: = 1
Line 225: Line 227:
=== सरल बीजगणितीय क्षेत्र विस्तार ===
=== सरल बीजगणितीय क्षेत्र विस्तार ===


विस्तारित यूक्लिडियन एल्गोरिथ्म भी [[सरल विस्तार]] में गुणात्मक व्युत्क्रमों की गणना के लिए मुख्य उपकरण है। क्रिप्टोग्राफी और [[कोडिंग सिद्धांत]] में व्यापक रूप से उपयोग किया जाने वाला एक महत्वपूर्ण मामला गैर-प्रमुख क्रम के परिमित क्षेत्रों का है। वास्तव में, अगर {{math|''p''}} एक प्रमुख संख्या है, और {{math|1=''q'' = ''p''<sup>''d''</sup>}}, व्यवस्था का क्षेत्र {{math|''q''}} के प्रमुख क्षेत्र का एक सरल बीजगणितीय विस्तार है {{math|''p''}} तत्व, डिग्री के एक [[अलघुकरणीय बहुपद]] की जड़ से उत्पन्न {{math|''d''}}.
विस्तारित यूक्लिडियन एल्गोरिथ्म भी [[Index.php?title=सरल बीजगणितीय|सरल बीजगणितीय]] क्षेत्र विस्तार में गुणात्मक व्युत्क्रमों की गणना के लिए मुख्य उपकरण है। कूटलेखन और [[कोडिंग सिद्धांत]] में व्यापक रूप से उपयोग किया जाने वाला एक महत्वपूर्ण कारण है जो गैर-प्रमुख क्रम के परिमित क्षेत्रों का है। वास्तव में, अगर {{math|''p''}} एक प्रमुख संख्या है, और {{math|1=''q'' = ''p''<sup>''d''</sup>}}, व्यवस्था का क्षेत्र {{math|''q''}} का क्षेत्र {{math|''p''}} तत्वों के प्रमुख क्षेत्र का एक साधारण बीजगणितीय विस्तार है जो डिग्री {{math|''d''}} के एक [[अलघुकरणीय बहुपद]] की जड़ से उत्पन्न होता है।


एक साधारण बीजगणितीय विस्तार {{math|''L''}} एक मैदान का {{math|''K''}}, एक अलघुकरणीय बहुपद की जड़ से उत्पन्न {{math|''p''}} डिग्री का {{math|''d''}} भागफल वलय से पहचाना जा सकता है <math>K[X]/\langle p\rangle,</math>, और इसके तत्व बायेजिव में डिग्री से कम के बहुपदों के साथ हैं {{math|''d''}}. में जोड़ {{math|''L''}} बहुपदों का योग है। में गुणन {{math|''L''}} द्वारा बहुपदों के यूक्लिडियन विभाजन का शेषफल है {{math|''p''}} बहुपदों के उत्पाद का। इस प्रकार, अंकगणित को पूरा करने के लिए {{math|''L''}}, यह केवल यह परिभाषित करने के लिए रहता है कि गुणात्मक व्युत्क्रमों की गणना कैसे की जाए। यह विस्तारित यूक्लिडियन एल्गोरिथम द्वारा किया जाता है।
डिग्री डी के एक अलघुकरणीय बहुपद पी की जड़ से उत्पन्न क्षेत्र के एक साधारण बीजगणितीय विस्तार {{math|''L''}} को भागफल की अंगूठी से पहचाना जा सकता है और इसके तत्व {{math|''d''}} से कम डिग्री वाले बहुपदों के साथ विशेषण के अनुरूप हैं। {{math|''L''}} में जोड़ बहुपदों का योग है। {{math|''L''}} में गुणन बहुपदों के गुणनफल के {{math|''p''}} द्वारा यूक्लिडियन विभाजन का शेषफल है। इस प्रकार, {{math|''L''}} में अंकगणित को पूरा करने के लिए, यह ,एकमात्र परिभाषित करने के लिए बनी हुई है की गुणात्मक व्युत्क्रमों की गणना कैसे करें। यह विस्तारित यूक्लिडियन एल्गोरिथम द्वारा किया जाता है।


मॉड्यूलर गुणात्मक व्युत्क्रम की गणना के लिए ऊपर दिए गए एल्गोरिदम के समान ही है। दो मुख्य अंतर हैं: सबसे पहले अंतिम लेकिन एक पंक्ति की आवश्यकता नहीं है, क्योंकि जो बेज़ाउट गुणांक प्रदान किया जाता है वह हमेशा एक डिग्री से कम होता है {{math|''d''}}. दूसरे, सबसे बड़ा सामान्य विभाजक जो प्रदान किया जाता है, जब इनपुट बहुपद सहअभाज्य होते हैं, तो कोई गैर शून्य तत्व हो सकता है {{math|''K''}}; इस बेज़ाउट गुणांक (आम तौर पर सकारात्मक डिग्री का एक बहुपद) को इस तत्व के व्युत्क्रम से गुणा किया जाना है {{math|''K''}}. निम्नलिखित स्यूडोकोड में, {{math|''p''}} एक से अधिक डिग्री का बहुपद है, और {{math|''a''}} एक बहुपद है।
मॉड्यूलर गुणात्मक व्युत्क्रम की गणना के लिए ऊपर दिए गए एल्गोरिदम के समान ही है। दो मुख्य अंतर हैं: सबसे पहले अंतिम परंतु एक पंक्ति की आवश्यकता नहीं है, चूंकि जो बेज़ाउट गुणांक प्रदान किया जाता है वह हमेशा {{math|''d''}} डिग्री से कम होता है दूसरा, सबसे बड़ा सामान्य विभाजक जो प्रदान किया जाता है, तब जब इनपुट बहुपद सहअभाज्य होते हैं, तब {{math|''K''}} का कोई भी गैर शून्य तत्व हो सकता है; इस बेज़ाउट गुणांक (सामान्यतः सकारात्मक डिग्री का एक बहुपद) को इस तत्व के व्युत्क्रम से गुणा किया जाता है स्यूडोकोड में जो अनुसरण करता है, {{math|''p''}} एक से अधिक डिग्री का बहुपद है।


  समारोह उलटा (ए, पी)
  समारोह उलटा (ए, पी)
     टी : = 0; न्यूट: = 1
     टी�: = 0; न्यूट: = 1
     आर := पी; नया := अ
     आर�:= पी;  न्यूट �:= अ
   
   
     जबकि newr ≠ 0 करते हैं
     जबकि न्यूट  ≠ 0 करते हैं
         भागफल := r div newr
         भागफल�:= आर डिव नियर
         (आर, नया) := (नया, आर - भागफल × नया)
         (आर,न्यूट):= (नया, आर - भागफल ×  न्यूट )
         (t, newt) := (newt, t − भागफल × newt)
         (t, न्यूट),:= (न्यूट, t − भागफल ×  न्यूट )
   
   
     अगर डिग्री (आर)> 0 तो
     अगर डिग्री (आर)> 0 तो
         रिटर्न या तो p इर्रिड्यूसिबल नहीं है या a, p का गुणज है
         रिटर्न या तो p अलघुकरणीय नहीं है या a, p का गुणज है
   
   
     वापसी (1/आर) × टी
     वापसी (1/आर) × टी
Line 247: Line 249:
==== उदाहरण ====
==== उदाहरण ====


उदाहरण के लिए, यदि बहुपद परिमित क्षेत्र GF(2<sup>8</sup>) 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) का एकमात्र अशून्य तत्व है, स्यूडोकोड की अंतिम पंक्ति में समायोजन की आवश्यकता नहीं है।
उदाहरण के लिए, यदि परिमित क्षेत्र 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:
| &nbsp;
| &nbsp;
|}
|}
अत: प्रतिलोम x है<sup>7</sup> + x<sup>6</sup> + x<sup>3</sup> + x, जैसा कि [[परिमित क्षेत्र अंकगणित]] द्वारा पुष्टि की जा सकती है, और शेषफल द्वारा {{math|''p''}} परिणाम का।
इस प्रकार, व्युत्क्रम 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>k</math>. उसी प्रकार <math>d</math> का भाजक है <math>c</math> इसलिए <math>c=jd</math> कुछ के लिए <math>j</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>\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>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=[[The Art of Computer Programming]] |author-link=Donald Knuth |first=Donald |last=Knuth |publisher=Addison-Wesley }} Volume 2, Chapter 4.
* {{Cite book |title=[[कंप्यूटर प्रोग्रामिंग की कला]] |author-link=डोनाल्ड नुथ |first=डोनाल्ड |last=नुथ |publisher=एडिसन-वेस्ले }} Volume 2, Chapter 4.
* [[Thomas H. Cormen]], [[Charles E. Leiserson]], [[Ronald L. Rivest]], and [[Clifford Stein]]. ''[[Introduction to Algorithms]]'', Second Edition. MIT Press and McGraw-Hill, 2001. {{ISBN|0-262-03293-7}}. Pages 859&ndash;861 of section 31.2: Greatest common divisor.
* [[Index.php?title= थॉमस एच। कॉर्मेन|थॉमस एच। कॉर्मेन]], [[Index.php?title=चार्ल्स ई. लीज़रसन|चार्ल्स ई. लीज़रसन]], [[Index.php?title= रोनाल्ड एल रिवेस्ट|रोनाल्ड एल रिवेस्ट]], and [[Index.php?title=क्लिफर्ड स्टीन|क्लिफर्ड स्टीन]]. ''[[Index.php?title=एल्गोरिदम का परिचय|एल्गोरिदम का परिचय]]'', दूसरा संस्करण। एमआईटी प्रेस और मैकग्रा-हिल,2001. {{ISBN|0-262-03293-7}}. Pages 859&ndash;861 of section 31.2: Greatest common divisor.




Line 320: Line 322:


{{number theoretic algorithms}}
{{number theoretic algorithms}}
[[Category: संख्या सैद्धांतिक एल्गोरिदम]] [[Category: स्यूडोकोड के उदाहरण वाले लेख]] [[Category: यूक्लिड]]


[[Category: Machine Translated Page]]
[[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 2405 × 46 = 10 15 × 0 = 1 0 − 5 × 1 = −5
3 46 ÷ 10 = 4 464 × 10 = 6 04 × 1 = −4 1 − 4 × −5 = 21
4 10 ÷ 6 = 1 101 × 6 = 4 11 × −4 = 5 −5 − 1 × 21 = −26
5 6 ÷ 4 = 1 61 × 4 = 2 −41 × 5 = −9 21 − 1 × −26 = 47
6 4 ÷ 2 = 2 42 × 2 = 0 52 × −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.


बाहरी संबंध