Nवें रूट एल्गोरिदम को स्थानांतरित करना: Difference between revisions
(Created page with "{{DISPLAYTITLE:Shifting ''n''th root algorithm}} {{unreferenced|date=May 2010}} शिफ्टिंग ''एन''वें रूट कलन विधि एक सक...") |
No edit summary |
||
(7 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{DISPLAYTITLE:Shifting ''n''th root algorithm}} | {{DISPLAYTITLE:Shifting ''n''th root algorithm}} | ||
== एल्गोरिथम == | '''स्थानांतरण Nवें मूल एल्गोरिदम''' एक धनात्मक वास्तविक संख्या के Nवें मूल को निकालने के लिए एक एल्गोरिदम है जो मूलांक के Nअंकों में परिवर्तन करके पुनरावृत्त रूप से आगे बढ़ता है, अधिक महत्वपूर्ण से प्रारंभ होता है, और लंबे विभाजन के समान विधि से प्रत्येक पुनरावृत्ति पर मूल का एक अंक उत्पन्न करता है। | ||
== एल्गोरिथम == | |||
=== संकेतन === | === संकेतन === | ||
मान लीजिए कि आप जिस संख्या प्रणाली का उपयोग कर रहे हैं उसका आधार <math>B | |||
</math> है और निकाले जाने वाले मूल की डिग्री <math>n</math> है। मान लीजिए कि अब तक संसाधित किया गया मूलांक <math>x</math> है, अब तक निकाली गई मूल <math>y</math> है और शेषफल <math>r</math> है। मान लीजिए <math>\alpha</math> मूलांक का अगला <math>n</math> अंक है, और <math>\beta</math> मूल का अगला अंक है। मान लीजिए <math>x'</math> अगले पुनरावृत्ति के लिए <math>x</math> का नया मान है, <math>y'</math> अगले पुनरावृत्ति के लिए <math>y</math> का नया मान है, और <math>r'</math> अगले पुनरावृत्ति के लिए <math>r</math> का नया मान है। ये सभी पूर्णांक हैं. | |||
=== अपरिवर्तनीय === | === अपरिवर्तनीय === | ||
प्रत्येक पुनरावृत्ति पर, | प्रत्येक पुनरावृत्ति पर, अपरिवर्तनीय <math>y^n + r = x</math> कायम रहेगा। अपरिवर्तनीय <math>(y+1)^n>x</math> धारण करेगा। इस प्रकार <math>y</math>, x के nवें मूल से कम या उसके समान अधिक उच्च पूर्णांक है, और r शेषफल है। | ||
=== आरंभीकरण === | === आरंभीकरण === | ||
यदि <math>x, y</math> और <math>r</math> का प्रारंभिक मान 0 होना चाहिए। पुनः पुनरावृत्ति के लिए <math>\alpha</math> का मान मूलांक के n अंकों का अधिक महत्वपूर्ण संरेखित ब्लॉक होना चाहिए। यदि <math>n</math> अंकों के एक संरेखित ब्लॉक का अर्थ है अंकों का एक ब्लॉक संरेखित करना जिससे दशमलव बिंदु ब्लॉकों के मध्य आ जाए उदाहरण के लिए, 123.4 में दो अंकों का अधिक महत्वपूर्ण संरेखित ब्लॉक 01 है, अगला अधिक महत्वपूर्ण 23 है, और तृतीय अधिक महत्वपूर्ण 40 है। | |||
=== मुख्य लूप === | === मुख्य लूप === | ||
प्रत्येक पुनरावृत्ति पर हम | प्रत्येक पुनरावृत्ति पर हम मूलांक के <math>n</math> अंकों में परिवर्तन करते हैं, इसलिए हमारे पास <math>x' = B^n x + \alpha </math> है और हम मूल का एक अंक उत्पन्न करते हैं, इसलिए हमारे पास <math>y' = B y + \beta </math> है। प्रथम अपरिवर्तनीय तात्पर्य यह है कि <math>r' = x' - y'^n</math>. हम <math>\beta</math> चुनना चाहते हैं जिससे ऊपर वर्णित अपरिवर्तनीयता बनाय रहे। इससे पता चलता है कि सदैव ऐसा ही एक विकल्प होता है, जैसा कि नीचे सिद्ध किया जाएगा। | ||
संक्षेप में, प्रत्येक पुनरावृत्ति पर: | संक्षेप में, प्रत्येक पुनरावृत्ति पर: | ||
# | # मान लीजिए <math>\alpha</math> मूलांक से अंकों का अगला संरेखित ब्लॉक बनें | ||
# | # मान लीजिए <math>x' = B^n x + \alpha </math> | ||
# | # मान लीजिए <math>\beta</math> अधिक उच्च हो <math>\beta</math> ऐसा है कि <math>(B y + \beta)^n \le B^n x + \alpha</math> | ||
# | # मान लीजिए <math>y' = B y + \beta</math> | ||
# | # मान लीजिए <math>r' = x' - y'^n</math> | ||
अब, उस पर ध्यान दें <math>x = y^n + r</math>, तो | अब, उस पर ध्यान दें <math>x = y^n + r</math>, तो स्थिति | ||
: <math>(B y + \beta)^n \le B^n x + \alpha</math> | : <math>(B y + \beta)^n \le B^n x + \alpha</math> | ||
के | के समान है | ||
: <math>(B y + \beta)^n - B^n y^n \le B^n r + \alpha</math> | : <math>(B y + \beta)^n - B^n y^n \le B^n r + \alpha</math> | ||
और | और | ||
: <math>r' = x' - y'^n = B^n x + \alpha - (B y + \beta)^n</math> | : <math>r' = x' - y'^n = B^n x + \alpha - (B y + \beta)^n</math> | ||
के | के समान है | ||
: <math>r' = B^n r + \alpha - ((B y + \beta)^n - B^n y ^n).</math> | : <math>r' = B^n r + \alpha - ((B y + \beta)^n - B^n y ^n).</math> | ||
इस प्रकार, हमें वास्तव में | |||
इस प्रकार, हमें वास्तव में <math>x</math> की आवश्यकता नहीं है, और चूँकि <math>r = x - y^n</math> और <math>x<(y+1)^n</math>, <math>r<(y+1)^n-y^n</math>या <math>r<n y^{n-1}+O(y^{n-2})</math>, या <math>r<n x^{{n-1}\over n} + O(x^{{n-2}\over n})</math> इसलिए x के अतिरिक्त <math>r</math> का उपयोग करके हम 1/<math>n</math> के कारक द्वारा समय और स्थान बचाते हैं। साथ ही, नए परीक्षण में हम जो <math>B^n y^n</math> घटाते हैं, वह <math>(B y + \beta)^n</math> में से एक को समाप्त कर देता है, इसलिए जहाँ <math>y</math> की उच्चतम घात जिसका हमें मूल्यांकन करना है वह <math>y^n</math> के अतिरिक्त <math>y^{n-1}</math> है। | |||
=== सारांश === | === सारांश === | ||
# | #r और y को 0 से प्रारंभ करें। | ||
# वांछित [[दशमलव परिशुद्धता]] प्राप्त होने तक दोहराएँ: | # वांछित [[दशमलव परिशुद्धता]] प्राप्त होने तक दोहराएँ: | ||
## | ## मान लीजिए <math>\alpha</math> मूलांक से अंकों का अगला संरेखित ब्लॉक बनें। | ||
## | ## मान लीजिए <math>\beta</math> सबसे बड़ा हो <math>\beta</math> ऐसा है कि <math>(B y + \beta)^n - B^n y^n \le B^n r + \alpha.</math> | ||
## | ## मान लीजिए <math>y' = B y + \beta</math>. | ||
## | ## मान लीजिए <math>r' = B^n r + \alpha - ((B y + \beta)^n - B^n y^n).</math> | ||
## | ## नियुक्त करें <math>y \leftarrow y'</math> और <math>r \leftarrow r'.</math> | ||
# <math>y</math> | #<math>y</math> अधिक उच्च पूर्णांक है जैसे कि <math>y^n<x B^k</math>, और <math>y^n+r=x B^k</math>, , जहां <math>k</math> दशमलव बिंदु के पश्चात मूलांक के अंकों की संख्या है जो उपयोग किया गया है (एक ऋणात्मक संख्या यदि एल्गोरिदम अभी तक दशमलव बिंदु तक नहीं पहुंचा है)। | ||
==कागज-और-पेंसिल nवाँ मूल == | ==कागज-और-पेंसिल nवाँ मूल == | ||
जैसा कि ऊपर उल्लेख किया गया है, यह एल्गोरिथ्म लंबे विभाजन के समान है, और यह स्वयं को उसी अंकन के लिए उधार देता है: | जैसा कि ऊपर उल्लेख किया गया है, यह एल्गोरिथ्म लंबे विभाजन के समान है, और यह स्वयं को उसी अंकन के लिए उधार देता है: | ||
{{Font color|red||1}}. | {{Font color|red||1}}. {{Font color|green||4}} {{Font color|blue||4}} {{Font color|magenta||2}} {{Font color|gold||2}} {{Font color|cyan||4}} | ||
—————————————————————— | |||
_ {{Font color|#444444||3}}/ 3.{{Font color|darkred||000}} {{Font color|darkgreen||000}} {{Font color|darkblue||000}} {{Font color|darkmagenta||000}} {{Font color|darkcyan||000}} | _ {{Font color|#444444||3}}/ 3.{{Font color|darkred||000}} {{Font color|darkgreen||000}} {{Font color|darkblue||000}} {{Font color|darkmagenta||000}} {{Font color|darkcyan||000}} | ||
\/ | \/ {{Font color|red||1}} = {{Font color|#444444||3}}(10×{{Font color|gray||0}})<sup>2</sup>×{{Font color|red||1}} +{{Font color|#444444||3}}(10×{{Font color|gray||0}})×{{Font color|red||1}}<sup>2</sup>+{{Font color|red||1}}<sup>3</sup> | ||
— | |||
2 {{Font color|darkred||000}} | |||
1 744 = {{Font color|#444444||3}}(10×{{Font color|red||1}})<sup>2</sup>×{{Font color|green||4}} +{{Font color|#444444||3}}(10×{{Font color|red||1}})×{{Font color|green||4}}<sup>2</sup>+{{Font color|green||4}}<sup>3</sup> | |||
————— | |||
256 {{Font color|darkgreen||000}} | |||
241 984 = {{Font color|#444444||3}}(10×{{Font color|red||1}}{{Font color|green||4}})<sup>2</sup>×{{Font color|blue||4}} +{{Font color|#444444||3}}(10×{{Font color|red||1}}{{Font color|green||4}})×{{Font color|blue||4}}<sup>2</sup>+{{Font color|blue||4}}<sup>3</sup> | |||
——————— | |||
14 016 {{Font color|darkblue||000}} | |||
12 458 888 = {{Font color|#444444||3}}(10×{{Font color|red||1}}{{Font color|green||4}}{{Font color|blue||4}})<sup>2</sup>×{{Font color|magenta||2}} +{{Font color|#444444||3}}(10×{{Font color|red||1}}{{Font color|green||4}}{{Font color|blue||4}})×{{Font color|magenta||2}}<sup>2</sup>+{{Font color|magenta||2}}<sup>3</sup> | |||
—————————— | |||
1 557 112 {{Font color|darkmagenta||000}} | |||
1 247 791 448 = {{Font color|#444444||3}}(10×{{Font color|red||1}}{{Font color|green||4}}{{Font color|blue||4}}{{Font color|magenta||2}})<sup>2</sup>×{{Font color|gold||2}} +{{Font color|#444444||3}}(10×{{Font color|red||1}}{{Font color|green||4}}{{Font color|blue||4}}{{Font color|magenta||2}})×{{Font color|gold||2}}<sup>2</sup>+{{Font color|gold||2}}<sup>3</sup> | |||
————————————— | |||
309 320 552 {{Font color|darkcyan||000}} | |||
249 599 823 424 = {{Font color|#444444||3}}(10×{{Font color|red||1}}{{Font color|green||4}}{{Font color|blue||4}}{{Font color|magenta||2}}{{Font color|gold||2}})<sup>2</sup>×{{Font color|cyan||4}} +{{Font color|#444444||3}}(10×{{Font color|red||1}}{{Font color|green||4}}{{Font color|blue||4}}{{Font color|magenta||2}}{{Font color|gold||2}})×{{Font color|cyan||4}}<sup>2</sup>+{{Font color|cyan||4}}<sup>3</sup> | |||
——————————————— | |||
59 720 728 576 | |||
ध्यान दें कि पहले या दो पुनरावृत्तियों के बाद प्रमुख पद | ध्यान दें कि पहले या दो पुनरावृत्तियों के बाद प्रमुख पद <math>(B y + \beta)^n - B^n y^n</math> पर हावी होता है, इसलिए हम <math>B^n r + \alpha</math> को <math>n B^{n-1} y^{n-1}</math> से विभाजित करके <math>\beta</math> पर अधिकांशतः सही पहला अनुमान प्राप्त कर सकते हैं। | ||
<math>(B y + \beta)^n - B^n y^n</math>, इसलिए हम | |||
== प्रदर्शन == | == प्रदर्शन == | ||
प्रत्येक पुनरावृत्ति पर, सबसे अधिक समय लेने वाला कार्य | प्रत्येक पुनरावृत्ति पर, सबसे अधिक समय लेने वाला कार्य <math>\beta</math> का चयन करना है। हम जानते हैं कि <math>B</math> संभावित मान हैं, इसलिए हम <math>O(\log(B))</math> तुलनाओं का उपयोग करके <math>\beta</math> पा सकते हैं। प्रत्येक तुलना के लिए <math>(B y +\beta)^n - B^n y^n</math> का मूल्यांकन करना आवश्यक होगा। Kवें पुनरावृत्ति में, <math>y</math> में <math>k</math> अंक हैं, और बहुपद का मूल्यांकन <math>k(n-1)</math> अंकों तक के <math>2 n - 4</math> गुणन और <math>k(n-1)</math> अंकों तक <math>n - 2</math> जोड़ के साथ किया जा सकता है, एक बार जब हम <math>y</math> के लिए <math>n-1</math> और <math>\beta</math> के लिए n के माध्यम से y और <math>\beta</math> की घात को जान लेते हैं। <math>\beta</math> की एक प्रतिबंधित सीमा है, इसलिए हम स्थिर समय में <math>\beta</math> की घात प्राप्त कर सकते हैं। हम <math>k(n-1)</math> अंकों तक <math>n-2</math> गुणन के साथ y की घात प्राप्त कर सकते हैं। यह मानते हुए कि n-अंकीय गुणन में <math>O(n^2)</math> समय लगता है और जोड़ने में <math>O(n)</math> समय लगता है, हम प्रत्येक तुलना के लिए समय <math>O(k^2 n^2)</math> लेते हैं, या <math>\beta</math> चुनने के लिए समय <math>O(k^2 n^2 \log(B))</math> लेते हैं। एल्गोरिथ्म का शेष भाग जोड़ और घटाव है जिसमें <math>O(k)</math> समय लगता है, इसलिए प्रत्येक पुनरावृत्ति में <math>O(k^2 n^2 \log(B))</math> लगता है। सभी <math>k</math> अंकों के लिए, हमें समय <math>O(k^3 n^2 \log(B))</math> चाहिए। | ||
<math>O(k^2 n^2)</math> | |||
एकमात्र आंतरिक संचयन की आवश्यकता <math>r</math> है, जो kवें पुनरावृत्ति पर <math>O(k)</math> अंक है। इस एल्गोरिदम में सीमित मेमोरी उपयोग नहीं है, अंकगणित के अधिक प्राथमिक एल्गोरिदम के विपरीत, मानसिक रूप से गणना की जा सकने वाली अंकों की संख्या पर ऊपरी सीमा लगा दी गई है। दुर्भाग्य से, आवधिक इनपुट वाली कोई भी बाउंडेड मेमोरी स्टेट मशीन केवल आवधिक आउटपुट उत्पन्न कर सकती है, इसलिए ऐसे कोई एल्गोरिदम नहीं हैं जो तर्कसंगत संख्याओं से अपरिमेय संख्याओं की गणना कर सकें, और इस प्रकार कोई बाउंडेड मेमोरी मूल निष्कर्षण एल्गोरिदम नहीं हैं। | |||
ध्यान दें कि आधार बढ़ाने से | ध्यान दें कि आधार बढ़ाने से <math>O(\log(B))</math> के कारक द्वारा <math>\beta</math> चुनने के लिए आवश्यक समय बढ़ जाता है, किंतु उसी कारक द्वारा दी गई स्पष्टता प्राप्त करने के लिए आवश्यक अंकों की संख्या घट जाती है, और चूंकि एल्गोरिदम अंकों की संख्या में घन समय है, आधार बढ़ाने से <math>O(\log^2(B))</math> की समग्र गति मिलती है। जब आधार रेडिकैंड से बड़ा होता है, तो एल्गोरिदम बाइनरी खोज में परिवर्तन हो जाता है, इसलिए यह इस प्रकार है कि यह एल्गोरिदम कंप्यूटर के साथ मूल की गणना के लिए उपयोगी नहीं है, क्योंकि यह सदैव अधिक सरल बाइनरी खोज से उत्तम प्रदर्शन करता है, और इसमें समान मेमोरी सम्मिश्र होती है। | ||
== उदाहरण == | == उदाहरण == | ||
Line 107: | Line 85: | ||
=== बाइनरी में 2 का वर्गमूल === | === बाइनरी में 2 का वर्गमूल === | ||
1. 0 1 1 0 1 | |||
------------------ | |||
_ /10.00 00 00 00 00 1 | _ /10.00 00 00 00 00 1 | ||
\/1+1 | \/1+1 | ||
----- ---- | |||
1 00 100 | |||
0 + 0 | |||
-------- ----- | |||
1 00 00 1001 | |||
10 01 + 1 | |||
-------- ------ | |||
1 11 00 10101 | |||
1 01 01 + 1 | |||
------- ------- | |||
1 11 00 101100 | |||
0 + 0 | |||
-------- -------- | |||
1 11 00 00 1011001 | |||
1 01 10 01 1 | |||
---------- | |||
1 01 11 शेष | |||
===3 का वर्गमूल === | ===3 का वर्गमूल === | ||
1. 7 3 2 0 5 | |||
---------------------- | |||
_ / 3.00 00 00 00 00 | _ / 3.00 00 00 00 00 | ||
\/ 1 = 20×0×1+1^2 | \/ 1 = 20×0×1+1^2 | ||
- | |||
2 00 | |||
1 89 = 20×1×7+7^2 (27 x 7) | |||
---- | |||
11 00 | |||
10 29 = 20×17×3+3^2 (343 x 3) | |||
----- | |||
71 00 | |||
69 24 = 20×173×2+2^2 (3462 x 2) | |||
----- | |||
1 76 00 | |||
0 = 20×1732×0+0^2 (34640 x 0) | |||
------- | |||
1 76 00 00 | |||
1 73 20 25 = 20×17320×5+5^2 (346405 x 5) | |||
---------- | |||
2 79 75 | |||
=== 5 का घनमूल === | === 5 का घनमूल === | ||
1. 7 0 9 9 7 | |||
---------------------- | |||
_ 3/ 5. 000 000 000 000 000 | _ 3/ 5. 000 000 000 000 000 | ||
\/ 1 = 300×(0^2)×1+30×0×(1^2)+1^3 | \/ 1 = 300×(0^2)×1+30×0×(1^2)+1^3 | ||
- | |||
4 000 | |||
3 913 = 300×(1^2)×7+30×1×(7^2)+7^3 | |||
----- | |||
87 000 | |||
0 = 300×(17^2)×0+30×17×(0^2)+0^3 | |||
------- | |||
87 000 000 | |||
78 443 829 = 300×(170^2)×9+30×170×(9^2)+9^3 | |||
---------- | |||
8 556 171 000 | |||
7 889 992 299 = 300×(1709^2)×9+30×1709×(9^2)+9^3 | |||
----------------- | |||
666 178 701 000 | |||
614 014 317 973 = 300×(17099^2)×7+30×17099×(7^2)+7^3 | |||
--------------- | |||
52 164 383 027 | |||
=== 7 का | === 7 का चतुर्थ मूल === | ||
1. 6 2 6 5 7 | |||
---------------------- | |||
_ 4/ 7.0000 0000 0000 0000 0000 | _ 4/ 7.0000 0000 0000 0000 0000 | ||
\/ 1 = 4000×(0^3)×1+600×(0^2)×(1^2)+40×0×(1^3)+1^4 | \/ 1 = 4000×(0^3)×1+600×(0^2)×(1^2)+40×0×(1^3)+1^4 | ||
- | |||
6 0000 | |||
5 5536 = 4000×(1^3)×6+600×(1^2)×(6^2)+40×1×(6^3)+6^4 | |||
------ | |||
4464 0000 | |||
3338 7536 = 4000×(16^3)×2+600×(16^2)×(2^2)+40×16×(2^3)+2^4 | |||
--------- | |||
1125 2464 0000 | |||
1026 0494 3376 = 4000×(162^3)×6+600×(162^2)×(6^2)+40×162×(6^3)+6^4 | |||
-------------- | |||
99 1969 6624 0000 | |||
86 0185 1379 0625 = 4000×(1626^3)×5+600×(1626^2)×(5^2)+ | |||
----------------- 40×1626×(5^3)+5^4 | |||
13 1784 5244 9375 0000 | |||
12 0489 2414 6927 3201 = 4000×(16265^3)×7+600×(16265^2)×(7^2)+ | |||
---------------------- 40×16265×(7^3)+7^4 | |||
1 1295 2830 2447 6799 | |||
== यह भी देखें == | == यह भी देखें == | ||
*[[वर्गमूलों की गणना की विधियाँ]] | *[[वर्गमूलों की गणना की विधियाँ]] | ||
* | * nवे मूल एल्गोरिथम | ||
== बाहरी संबंध == | == बाहरी संबंध == | ||
* [http://www.homeschoolmath.net/teaching/sqr-algorithm-why-works.php Why the square root algorithm works] "Home School Math". Also related pages giving examples of the long-division-like pencil and paper method for square roots. | * [http://www.homeschoolmath.net/teaching/sqr-algorithm-why-works.php Why the square root algorithm works] "Home School Math". Also related pages giving examples of the long-division-like pencil and paper method for square roots. | ||
* [https://q12.medium.com/reflections-on-the-square-root-of-two-ae792db4c7e Reflections on The Square Root of Two] "Medium". With an example of a C++ implementation. | * [https://q12.medium.com/reflections-on-the-square-root-of-two-ae792db4c7e Reflections on The Square Root of Two] "Medium". With an example of a C++ implementation. | ||
[[Category:Created On 18/07/2023]] | [[Category:Created On 18/07/2023]] | ||
[[Category:Machine Translated Page]] | |||
[[Category:Pages with ignored display titles]] | |||
[[Category:अंक-दर-अंक एल्गोरिदम]] | |||
[[Category:कंप्यूटर अंकगणित एल्गोरिदम]] | |||
[[Category:जड़-खोज एल्गोरिदम]] | |||
[[Category:संख्याओं पर परिचालन]] |
Latest revision as of 10:16, 4 August 2023
स्थानांतरण Nवें मूल एल्गोरिदम एक धनात्मक वास्तविक संख्या के Nवें मूल को निकालने के लिए एक एल्गोरिदम है जो मूलांक के Nअंकों में परिवर्तन करके पुनरावृत्त रूप से आगे बढ़ता है, अधिक महत्वपूर्ण से प्रारंभ होता है, और लंबे विभाजन के समान विधि से प्रत्येक पुनरावृत्ति पर मूल का एक अंक उत्पन्न करता है।
एल्गोरिथम
संकेतन
मान लीजिए कि आप जिस संख्या प्रणाली का उपयोग कर रहे हैं उसका आधार है और निकाले जाने वाले मूल की डिग्री है। मान लीजिए कि अब तक संसाधित किया गया मूलांक है, अब तक निकाली गई मूल है और शेषफल है। मान लीजिए मूलांक का अगला अंक है, और मूल का अगला अंक है। मान लीजिए अगले पुनरावृत्ति के लिए का नया मान है, अगले पुनरावृत्ति के लिए का नया मान है, और अगले पुनरावृत्ति के लिए का नया मान है। ये सभी पूर्णांक हैं.
अपरिवर्तनीय
प्रत्येक पुनरावृत्ति पर, अपरिवर्तनीय कायम रहेगा। अपरिवर्तनीय धारण करेगा। इस प्रकार , x के nवें मूल से कम या उसके समान अधिक उच्च पूर्णांक है, और r शेषफल है।
आरंभीकरण
यदि और का प्रारंभिक मान 0 होना चाहिए। पुनः पुनरावृत्ति के लिए का मान मूलांक के n अंकों का अधिक महत्वपूर्ण संरेखित ब्लॉक होना चाहिए। यदि अंकों के एक संरेखित ब्लॉक का अर्थ है अंकों का एक ब्लॉक संरेखित करना जिससे दशमलव बिंदु ब्लॉकों के मध्य आ जाए उदाहरण के लिए, 123.4 में दो अंकों का अधिक महत्वपूर्ण संरेखित ब्लॉक 01 है, अगला अधिक महत्वपूर्ण 23 है, और तृतीय अधिक महत्वपूर्ण 40 है।
मुख्य लूप
प्रत्येक पुनरावृत्ति पर हम मूलांक के अंकों में परिवर्तन करते हैं, इसलिए हमारे पास है और हम मूल का एक अंक उत्पन्न करते हैं, इसलिए हमारे पास है। प्रथम अपरिवर्तनीय तात्पर्य यह है कि . हम चुनना चाहते हैं जिससे ऊपर वर्णित अपरिवर्तनीयता बनाय रहे। इससे पता चलता है कि सदैव ऐसा ही एक विकल्प होता है, जैसा कि नीचे सिद्ध किया जाएगा।
संक्षेप में, प्रत्येक पुनरावृत्ति पर:
- मान लीजिए मूलांक से अंकों का अगला संरेखित ब्लॉक बनें
- मान लीजिए
- मान लीजिए अधिक उच्च हो ऐसा है कि
- मान लीजिए
- मान लीजिए
अब, उस पर ध्यान दें , तो स्थिति
के समान है
और
के समान है
इस प्रकार, हमें वास्तव में की आवश्यकता नहीं है, और चूँकि और , या , या इसलिए x के अतिरिक्त का उपयोग करके हम 1/ के कारक द्वारा समय और स्थान बचाते हैं। साथ ही, नए परीक्षण में हम जो घटाते हैं, वह में से एक को समाप्त कर देता है, इसलिए जहाँ की उच्चतम घात जिसका हमें मूल्यांकन करना है वह के अतिरिक्त है।
सारांश
- r और y को 0 से प्रारंभ करें।
- वांछित दशमलव परिशुद्धता प्राप्त होने तक दोहराएँ:
- मान लीजिए मूलांक से अंकों का अगला संरेखित ब्लॉक बनें।
- मान लीजिए सबसे बड़ा हो ऐसा है कि
- मान लीजिए .
- मान लीजिए
- नियुक्त करें और
- अधिक उच्च पूर्णांक है जैसे कि , और , , जहां दशमलव बिंदु के पश्चात मूलांक के अंकों की संख्या है जो उपयोग किया गया है (एक ऋणात्मक संख्या यदि एल्गोरिदम अभी तक दशमलव बिंदु तक नहीं पहुंचा है)।
कागज-और-पेंसिल nवाँ मूल
जैसा कि ऊपर उल्लेख किया गया है, यह एल्गोरिथ्म लंबे विभाजन के समान है, और यह स्वयं को उसी अंकन के लिए उधार देता है:
1. 4 4 2 2 4
—————————————————————— _ 3/ 3.000 000 000 000 000 \/ 1 = 3(10×0)2×1 +3(10×0)×12+13 — 2 000 1 744 = 3(10×1)2×4 +3(10×1)×42+43 ————— 256 000 241 984 = 3(10×14)2×4 +3(10×14)×42+43 ——————— 14 016 000 12 458 888 = 3(10×144)2×2 +3(10×144)×22+23 —————————— 1 557 112 000 1 247 791 448 = 3(10×1442)2×2 +3(10×1442)×22+23 ————————————— 309 320 552 000 249 599 823 424 = 3(10×14422)2×4 +3(10×14422)×42+43 ——————————————— 59 720 728 576
ध्यान दें कि पहले या दो पुनरावृत्तियों के बाद प्रमुख पद पर हावी होता है, इसलिए हम को से विभाजित करके पर अधिकांशतः सही पहला अनुमान प्राप्त कर सकते हैं।
प्रदर्शन
प्रत्येक पुनरावृत्ति पर, सबसे अधिक समय लेने वाला कार्य का चयन करना है। हम जानते हैं कि संभावित मान हैं, इसलिए हम तुलनाओं का उपयोग करके पा सकते हैं। प्रत्येक तुलना के लिए का मूल्यांकन करना आवश्यक होगा। Kवें पुनरावृत्ति में, में अंक हैं, और बहुपद का मूल्यांकन अंकों तक के गुणन और अंकों तक जोड़ के साथ किया जा सकता है, एक बार जब हम के लिए और के लिए n के माध्यम से y और की घात को जान लेते हैं। की एक प्रतिबंधित सीमा है, इसलिए हम स्थिर समय में की घात प्राप्त कर सकते हैं। हम अंकों तक गुणन के साथ y की घात प्राप्त कर सकते हैं। यह मानते हुए कि n-अंकीय गुणन में समय लगता है और जोड़ने में समय लगता है, हम प्रत्येक तुलना के लिए समय लेते हैं, या चुनने के लिए समय लेते हैं। एल्गोरिथ्म का शेष भाग जोड़ और घटाव है जिसमें समय लगता है, इसलिए प्रत्येक पुनरावृत्ति में लगता है। सभी अंकों के लिए, हमें समय चाहिए।
एकमात्र आंतरिक संचयन की आवश्यकता है, जो kवें पुनरावृत्ति पर अंक है। इस एल्गोरिदम में सीमित मेमोरी उपयोग नहीं है, अंकगणित के अधिक प्राथमिक एल्गोरिदम के विपरीत, मानसिक रूप से गणना की जा सकने वाली अंकों की संख्या पर ऊपरी सीमा लगा दी गई है। दुर्भाग्य से, आवधिक इनपुट वाली कोई भी बाउंडेड मेमोरी स्टेट मशीन केवल आवधिक आउटपुट उत्पन्न कर सकती है, इसलिए ऐसे कोई एल्गोरिदम नहीं हैं जो तर्कसंगत संख्याओं से अपरिमेय संख्याओं की गणना कर सकें, और इस प्रकार कोई बाउंडेड मेमोरी मूल निष्कर्षण एल्गोरिदम नहीं हैं।
ध्यान दें कि आधार बढ़ाने से के कारक द्वारा चुनने के लिए आवश्यक समय बढ़ जाता है, किंतु उसी कारक द्वारा दी गई स्पष्टता प्राप्त करने के लिए आवश्यक अंकों की संख्या घट जाती है, और चूंकि एल्गोरिदम अंकों की संख्या में घन समय है, आधार बढ़ाने से की समग्र गति मिलती है। जब आधार रेडिकैंड से बड़ा होता है, तो एल्गोरिदम बाइनरी खोज में परिवर्तन हो जाता है, इसलिए यह इस प्रकार है कि यह एल्गोरिदम कंप्यूटर के साथ मूल की गणना के लिए उपयोगी नहीं है, क्योंकि यह सदैव अधिक सरल बाइनरी खोज से उत्तम प्रदर्शन करता है, और इसमें समान मेमोरी सम्मिश्र होती है।
उदाहरण
बाइनरी में 2 का वर्गमूल
1. 0 1 1 0 1 ------------------ _ /10.00 00 00 00 00 1 \/1+1 ----- ---- 1 00 100 0 + 0 -------- ----- 1 00 00 1001 10 01 + 1 -------- ------ 1 11 00 10101 1 01 01 + 1 ------- ------- 1 11 00 101100 0 + 0 -------- -------- 1 11 00 00 1011001 1 01 10 01 1 ---------- 1 01 11 शेष
3 का वर्गमूल
1. 7 3 2 0 5 ---------------------- _ / 3.00 00 00 00 00 \/ 1 = 20×0×1+1^2 - 2 00 1 89 = 20×1×7+7^2 (27 x 7) ---- 11 00 10 29 = 20×17×3+3^2 (343 x 3) ----- 71 00 69 24 = 20×173×2+2^2 (3462 x 2) ----- 1 76 00 0 = 20×1732×0+0^2 (34640 x 0) ------- 1 76 00 00 1 73 20 25 = 20×17320×5+5^2 (346405 x 5) ---------- 2 79 75
5 का घनमूल
1. 7 0 9 9 7 ---------------------- _ 3/ 5. 000 000 000 000 000 \/ 1 = 300×(0^2)×1+30×0×(1^2)+1^3 - 4 000 3 913 = 300×(1^2)×7+30×1×(7^2)+7^3 ----- 87 000 0 = 300×(17^2)×0+30×17×(0^2)+0^3 ------- 87 000 000 78 443 829 = 300×(170^2)×9+30×170×(9^2)+9^3 ---------- 8 556 171 000 7 889 992 299 = 300×(1709^2)×9+30×1709×(9^2)+9^3 ----------------- 666 178 701 000 614 014 317 973 = 300×(17099^2)×7+30×17099×(7^2)+7^3 --------------- 52 164 383 027
7 का चतुर्थ मूल
1. 6 2 6 5 7 ---------------------- _ 4/ 7.0000 0000 0000 0000 0000 \/ 1 = 4000×(0^3)×1+600×(0^2)×(1^2)+40×0×(1^3)+1^4 - 6 0000 5 5536 = 4000×(1^3)×6+600×(1^2)×(6^2)+40×1×(6^3)+6^4 ------ 4464 0000 3338 7536 = 4000×(16^3)×2+600×(16^2)×(2^2)+40×16×(2^3)+2^4 --------- 1125 2464 0000 1026 0494 3376 = 4000×(162^3)×6+600×(162^2)×(6^2)+40×162×(6^3)+6^4 -------------- 99 1969 6624 0000 86 0185 1379 0625 = 4000×(1626^3)×5+600×(1626^2)×(5^2)+ ----------------- 40×1626×(5^3)+5^4 13 1784 5244 9375 0000 12 0489 2414 6927 3201 = 4000×(16265^3)×7+600×(16265^2)×(7^2)+ ---------------------- 40×16265×(7^3)+7^4 1 1295 2830 2447 6799
यह भी देखें
- वर्गमूलों की गणना की विधियाँ
- nवे मूल एल्गोरिथम
बाहरी संबंध
- Why the square root algorithm works "Home School Math". Also related pages giving examples of the long-division-like pencil and paper method for square roots.
- Reflections on The Square Root of Two "Medium". With an example of a C++ implementation.