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

From Vigyanwiki
No edit summary
No edit summary
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> व्यापकता के नुकसान के बिना।

Revision as of 15:08, 12 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 का गुणन bezout_t की गणना में अतिप्रवाह हो सकता है, इस अनुकूलन को इनपुट तक सीमित कर सकता है जिसे आधे से कम अधिकतम आकार में प्रदर्शित किया जा सकता है। असीमित आकार के पूर्णांकों का उपयोग करते समय, गुणन और विभाजन के लिए आवश्यक समय पूर्णांकों के आकार के साथ द्विघात रूप से बढ़ता है। इसका तात्पर्य यह है कि अनुकूलन एक गुणन/विभाजन द्वारा छोटे पूर्णांकों के गुणन/विभाजनों के अनुक्रम को प्रतिस्थापित करता है, जिसके लिए एक साथ लिए गए संचालन की तुलना में अधिक कंप्यूटिंग समय की आवश्यकता होती है।

अंशों का सरलीकरण

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

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

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

मॉड्यूलर पूर्णांक

अगर n एक धनात्मक पूर्णांक है, वलय Z/nZ सेट से पहचाना जा सकता है {0, 1, ..., n-1} द्वारा यूक्लिडियन विभाजन के अवशेष n, जोड़ और गुणा करके शेषफल लेना है n पूर्णांकों के जोड़ और गुणा के परिणाम का। तत्व a का Z/nZ एक गुणक व्युत्क्रम है (अर्थात, यह एक इकाई (रिंग थ्योरी) है) यदि यह कोप्राइम है n. विशेष रूप से, अगर n अभाज्य संख्या है, a गुणक व्युत्क्रम होता है यदि यह शून्य नहीं है (modulo n). इस प्रकार Z/nZ एक क्षेत्र है अगर और केवल अगर n प्रधान है।

बेज़ाउट की पहचान इस बात का दावा करती है a और n कोप्राइम हैं अगर और केवल अगर पूर्णांक मौजूद हैं s और t ऐसा है कि

इस पहचान मॉड्यूल को कम करना n देता है

इस प्रकार t, या, अधिक सटीक रूप से, के विभाजन का शेष भाग t द्वारा n, का गुणक प्रतिलोम है a मापांक 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 एक मैदान का K, एक अलघुकरणीय बहुपद की जड़ से उत्पन्न p डिग्री का d भागफल वलय से पहचाना जा सकता है , और इसके तत्व बायेजिव में डिग्री से कम के बहुपदों के साथ हैं d. में जोड़ L बहुपदों का योग है। में गुणन L द्वारा बहुपदों के यूक्लिडियन विभाजन का शेषफल है p बहुपदों के उत्पाद का। इस प्रकार, अंकगणित को पूरा करने के लिए L, यह केवल यह परिभाषित करने के लिए रहता है कि गुणात्मक व्युत्क्रमों की गणना कैसे की जाए। यह विस्तारित यूक्लिडियन एल्गोरिथम द्वारा किया जाता है।

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

समारोह उलटा (ए, पी)
    टी : = 0; न्यूट: = 1
    आर := पी; नया := अ

    जबकि newr ≠ 0 करते हैं
        भागफल := r div newr
        (आर, नया) := (नया, आर - भागफल × नया)
        (t, newt) := (newt, t − भागफल × newt)

    अगर डिग्री (आर)> 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)  

अत: प्रतिलोम x है7 + x6 + x3 + x, जैसा कि परिमित क्षेत्र अंकगणित द्वारा पुष्टि की जा सकती है, और शेषफल द्वारा p परिणाम का।

दो से अधिक संख्याओं का मामला

कोई दो से अधिक संख्याओं के मामले को पुनरावृत्त रूप से संभाल सकता है। पहले हम दिखाते हैं . इसे साबित करने के लिए आइए . जीसीडी की परिभाषा के अनुसार का भाजक है और . इस प्रकार कुछ के लिए . उसी प्रकार का भाजक है इसलिए कुछ के लिए . होने देना . हमारे निर्माण से , लेकिन फिर सबसे बड़ा भाजक है एक इकाई (रिंग थ्योरी) है। और तबसे परिणाम सिद्ध होता है।

तो यदि तो वहाँ हैं और ऐसा है कि तो अंतिम समीकरण होगा

तो फिर एन नंबरों पर लागू करने के लिए हम इंडक्शन का उपयोग करते हैं

सीधे निम्नलिखित समीकरणों के साथ।

यह भी देखें

संदर्भ

  • Knuth, Donald. The Art of Computer Programming. Addison-Wesley. 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–861 of section 31.2: Greatest common divisor.


बाहरी संबंध