Nth रूट एल्गोरिथम को स्थानांतरित करना

From alpha
Jump to navigation Jump to search

शिफ्टिंग nth रूट एल्गोरिद्म nth रूट निकालने के लिए एक कलन विधि है।n एक सकारात्मक वास्तविक संख्या का रूट है जो रेडिकैंड के n संख्यात्मक अंक में स्थानांतरित करके पुनरावृत्त रूप से आगे बढ़ता है, से शुरू होता है सबसे महत्वपूर्ण, और प्रत्येक पुनरावृति पर मूल का एक अंक उत्पन्न करता है, एक तरह से दीर्घ विभाजन के समान।

एल्गोरिथम

अंकन

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

अपरिवर्तनीय

प्रत्येक पुनरावृत्ति पर, अपरिवर्तनीय (कंप्यूटर विज्ञान) रोक लेंगे। अपरिवर्तनीय पकड़ूँगा। इस प्रकार के nवें मूल से कम या उसके बराबर सबसे बड़ा पूर्णांक है , और शेष है।

आरंभीकरण

के प्रारंभिक मूल्य , और 0 होना चाहिए। का मान पहले पुनरावृत्ति के लिए सबसे महत्वपूर्ण संरेखित ब्लॉक होना चाहिए रेडिकैंड के अंक। का एक संरेखित ब्लॉक अंकों का अर्थ है अंकों का एक ब्लॉक संरेखित किया गया है ताकि दशमलव बिंदु ब्लॉकों के बीच आ जाए। उदाहरण के लिए, 123.4 में दो अंकों का सबसे महत्वपूर्ण संरेखित ब्लॉक 01 है, अगला सबसे महत्वपूर्ण 23 है, और तीसरा सबसे महत्वपूर्ण 40 है।

मुख्य पाश

प्रत्येक पुनरावृत्ति पर हम शिफ्ट होते हैं रेडिकैंड के अंक, तो हमारे पास है और हम मूल का एक अंक उत्पन्न करते हैं, तो हमारे पास है . पहला अपरिवर्तनीय इसका तात्पर्य है . हम चुनना चाहते हैं ताकि ऊपर वर्णित आक्रमणकारियों को रखा जा सके। यह पता चला है कि हमेशा एक ही विकल्प होता है, जैसा कि नीचे सिद्ध किया जाएगा।

Proof of existence and uniqueness of

By definition of a digit, , and by definition of a block of digits,

The first invariant says that:

or

So, pick the largest integer such that

Such a always exists, since and if then , but since , this is always true for . Thus, there will always be a that satisfies the first invariant

Now consider the second invariant. It says:

or

Now, if is not the largest admissible for the first invariant as described above, then is also admissible, and we have

This violates the second invariant, so to satisfy both invariants we must pick the largest allowed by the first invariant. Thus we have proven the existence and uniqueness of .

संक्षेप में, प्रत्येक पुनरावृत्ति पर:

  1. होने देना रेडिकैंड से अंकों का अगला संरेखित ब्लॉक बनें
  2. होने देना
  3. होने देना सबसे बड़ा हो ऐसा है कि
  4. होने देना
  5. होने देना

अब, ध्यान दें , तो हालत

के बराबर है

और

के बराबर है

इस प्रकार, हमें वास्तव में आवश्यकता नहीं है , और तबसे और , या , या , तो उपयोग करके के बजाय हम समय और स्थान को 1/ के कारक से बचाते हैं. यह भी हम नए परीक्षण में घटाते हैं एक को रद्द कर देता है , तो अब की उच्चतम शक्ति हमें मूल्यांकन करना है इसके बजाय .

सारांश

  1. प्रारंभ करें और से 0.
  2. वांछित दशमलव सटीकता प्राप्त होने तक दोहराएं:
    1. होने देना रेडिकैंड से अंकों का अगला संरेखित ब्लॉक बनें।
    2. होने देना सबसे बड़ा हो ऐसा है कि
    3. होने देना .
    4. होने देना
    5. सौंपना और
  3. सबसे बड़ा पूर्णांक है जैसे कि , और , कहाँ पे उपयोग किए गए दशमलव बिंदु के बाद रेडिकैंड के अंकों की संख्या है (एक ऋणात्मक संख्या यदि एल्गोरिथम अभी तक दशमलव बिंदु तक नहीं पहुंचा है)।

कागज और पेंसिल nth जड़ें

जैसा कि ऊपर उल्लेख किया गया है, यह एल्गोरिथम लंबे विभाजन के समान है, और यह स्वयं को उसी अंकन के लिए उधार देता है:

1. 4 4 2 2 4 ——————————————————————

_ 3/ 3.000 000 000 000 000

\/ 1 = 3(10×0)2×1 +3(10×012 +13</उप>

     —
     2 000

1 744 = 3(10×1)2×4 +3(10×142 +43</उप>

     —————
       256 000

241 984 = 3(10×14)2×4 +3(10×1442 +43</उप>

       ———————
        14 016 000

12 458 888 = 3(10×144)2×2 +3(10×14422 +23</उप>

        ———————————
         1 557 112 000

1 247 791 448 = 3(10×1442)2×2 +3(10×144222 +23</उप>

         ——————————————
           309 320 552 000

249 599 823 424 = 3(10×14422)2×4 +3(10×1442242 +43</उप>

           ————————————————
            59 720 728 576

ध्यान दें कि पहले पुनरावृत्ति या दो के बाद प्रमुख शब्द हावी हो जाता है , इसलिए हम अक्सर सही पहला अनुमान प्राप्त कर सकते हैं विभाजित करके द्वारा .

प्रदर्शन

प्रत्येक पुनरावृत्ति पर, सबसे अधिक समय लेने वाला कार्य चयन करना है . हम जानते हैं कि हैं संभावित मूल्य, इसलिए हम पा सकते हैं का उपयोग करते हुए तुलना। प्रत्येक तुलना के मूल्यांकन की आवश्यकता होगी . के वें पुनरावृत्ति में, है अंक, और बहुपद का मूल्यांकन किया जा सकता है तक का गुणन अंक और तक का जोड़ अंक, एक बार जब हम की शक्तियों को जानते हैं और के माध्यम से के लिए और के लिए . एक प्रतिबंधित सीमा है, इसलिए हम की शक्तियाँ प्राप्त कर सकते हैं निरंतर समय में। की शक्तियां प्राप्त कर सकते हैं साथ तक का गुणन अंक। यह मानते हुए -डिजिट गुणा में समय लगता है और जोड़ने में समय लगता है , हम समय लेते हैं प्रत्येक तुलना, या समय के लिए उठाना . एल्गोरिथ्म का शेष जोड़ और घटाव है जिसमें समय लगता है , इसलिए प्रत्येक पुनरावृत्ति लेता है . सभी के लिए अंक, हमें समय चाहिए .

केवल आंतरिक भंडारण की जरूरत है , जो है 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

यह भी देखें

  • वर्गमूल की गणना करने की विधियाँ
  • nth रूट एल्गोरिथम

बाहरी कड़ियाँ