संचालन का अंकगणितीय क्रम

गणित और कंप्यूटर प्रोग्रामिंग में, संचालन का क्रम (या ऑपरेटर पूर्वता) नियमों का एक संग्रह है जो किसी दिए गए गणितीय अभिव्यक्ति का मूल्यांकन करने के लिए पहले किस प्रक्रिया को निष्पादित करने के बारे में सम्मेलनों को दर्शाता है।

उदाहरण के लिए, गणित और अधिकांश कंप्यूटर भाषाओं में, जोड़ की तुलना में गुणन को उच्च प्राथमिकता दी जाती है, और आधुनिक बीजगणितीय संकेतन की शुरुआत के बाद से यह ऐसा ही रहा है। इस प्रकार, व्यंजक 1 + 2 × 3 की व्याख्या मान 1 + (2 × 3) = 7 के रूप में की जाती है, न कि (1 + 2) × 3 = 9 के। जब 16वीं और 17वीं शताब्दी में प्रतिपादकों को पेश किया गया था, तो उन्हें जोड़ और गुणा दोनों पर प्राथमिकता दी गई थी, और उन्हें केवल उनके आधार के दाईं ओर एक सुपरस्क्रिप्ट के रूप में रखा जा सकता था। इस प्रकार 3 + 52 = 28 और 3 × 52 = 75।

संकेतन अस्पष्टता को खत्म करने के लिए ये सम्मेलन मौजूद हैं, जबकि संकेतन को यथासंभव संक्षिप्त होने की अनुमति है। जहां पूर्ववर्ती सम्मेलनों को ओवरराइड करना वांछित है, या यहां तक कि केवल उन पर जोर देने के लिए, कोष्ठक का उपयोग किया जा सकता है। उदाहरण के लिए, (2 + 3) × 4 = 20 पूर्ववर्ती गुणन पर योग को बल देता है, जबकि (3 + 5)2 = 64 पूर्ववर्ती घातांक पर योग को बल देता है। यदि एक गणितीय अभिव्यक्ति में कोष्ठकों के कई जोड़े आवश्यक हैं (जैसे नेस्टेड कोष्ठकों के मामले में), भ्रम से बचने के लिए कोष्ठकों को कोष्ठक या ब्रेसिज़ द्वारा प्रतिस्थापित किया जा सकता है, जैसा कि [2 × (3 + 4)] − 5 = 9।

परिभाषा
गणित, विज्ञान, प्रौद्योगिकी और कई कंप्यूटर प्रोग्रामिंग भाषाओं में उपयोग किए जाने वाले संचालन का क्रम यहां व्यक्त किया गया है:


 * 1) घातांक और जड़ निष्कर्षण
 * 2) गुणन और विभाजन
 * 3) जोड़ और घटाव

इसका अर्थ यह है कि यदि किसी गणितीय व्यंजक में, दो संकारकों के बीच एक उपअभिव्यक्ति प्रकट होती है, तो उपरोक्त सूची में ऊपर वाले संकारक को पहले लागू किया जाना चाहिए।

जोड़ और गुणन के क्रमविनिमेय और साहचर्य कानून किसी भी क्रम में शर्तों को जोड़ने और किसी भी क्रम में कारकों को गुणा करने की अनुमति देते हैं - लेकिन मिश्रित संचालन को संचालन के मानक क्रम का पालन करना चाहिए।

कुछ संदर्भों में, एक विभाजन को पारस्परिक (गुणात्मक व्युत्क्रम) द्वारा गुणन और विपरीत (योगात्मक व्युत्क्रम) के जोड़ से एक घटाव को बदलने में सहायक होता है। उदाहरण के लिए, कंप्यूटर बीजगणित में, यह एक को कम द्विआधारी संचालन को संभालने की अनुमति देता है, और बड़े भावों को सरल करते समय क्रमविनिमेयता और साहचर्यता का उपयोग करना आसान बनाता है (अधिक के लिए, देखें ). इस प्रकार 3 ÷ 4 = 3 × $1⁄4$; दूसरे शब्दों में, 3 और 4 का भागफल 3 और के गुणनफल के बराबर होता है $1⁄4$. भी 3 − 4 = 3 + (−4); दूसरे शब्दों में 3 और 4 का अंतर 3 और -4 के योग के बराबर है। इस प्रकार, 1 − 3 + 7 का योग माना जा सकता है 1 + (−3) + 7, और तीन जोड़ किसी भी क्रम में जोड़े जा सकते हैं, सभी मामलों में परिणाम के रूप में 5 दिया जा सकता है।

मूल प्रतीक √ पारंपरिक रूप से रेडिकैंड के ऊपर एक बार ( विंकुलम कहा जाता है) द्वारा बढ़ाया जाता है (यह रेडिकैंड के चारों ओर कोष्ठक की आवश्यकता से बचा जाता है)। अस्पष्टता से बचने के लिए अन्य कार्य इनपुट के चारों ओर कोष्ठक का उपयोग करते हैं। कोष्ठकों को छोड़ा जा सकता है यदि इनपुट एकल संख्यात्मक चर या स्थिर है, जैसा कि और  के मामले में है।  कभी-कभी उपयोग किया जाने वाला एक और शॉर्टकट सम्मेलन तब होता है जब इनपुट मोनोमियल होता है; इस प्रकार,  बजाय (sin(3))&thinsp;x, लेकिन sin x + y = sin(x) + y, क्योंकि x + y एक एकपदी नहीं है। हालांकि, यह अस्पष्ट है और विशिष्ट संदर्भों के बाहर सार्वभौमिक रूप से समझ में नहीं आता है।  कुछ कैलकुलेटर और प्रोग्रामिंग भाषाओं को फ़ंक्शन इनपुट के आसपास कोष्ठक की आवश्यकता होती है, और कुछ को नहीं होती।

संचालन के सामान्य क्रम को प्रत्यादिष्ट (ओवरराइड) करने के लिए समूहीकरण के प्रतीकों का उपयोग किया जा सकता है। समूहीकृत प्रतीकों को एकल अभिव्यक्ति के रूप में माना जा सकता है। साहचर्य और वितरण कानूनों का उपयोग करके समूहीकरण के प्रतीकों को हटाया जा सकता है, साथ ही उन्हें हटाया जा सकता है यदि समूहीकरण के प्रतीक के अंदर की अभिव्यक्ति को पर्याप्त रूप से सरल किया जाता है ताकि उनके हटाने से कोई अस्पष्टता न हो।

उदाहरण

 * $$\sqrt{1 + 3} + 5 = \sqrt 4 + 5 = 2 + 5 = 7.$$

एक क्षैतिज भिन्नात्मक रेखा भी समूहीकरण के प्रतीक के रूप में कार्य करती है:
 * $$\frac{1 + 2}{3 + 4} + 5 = \frac{3}{7} + 5.$$

पढ़ने में आसानी के लिए, अन्य समूहीकरण चिह्न, जैसे घुंघराले कोष्ठक {{Nowrap|{}} } या वर्गाकार कोष्ठक [ ], अक्सर कोष्ठक के साथ उपयोग किए जाते हैं। उदाहरण के लिए:
 * $$( [1 + 2] \div [3 + 4] ) + 5 = (3 \div 7) + 5 $$

स्मृति चिन्ह
छात्रों को नियमों को याद रखने में मदद करने के लिए अक्सर स्मृति चिन्ह का उपयोग किया जाता है, जिसमें विभिन्न संक्रियाओं का प्रतिनिधित्व करने वाले शब्दों के पहले अक्षर शामिल होते हैं। अलग-अलग देशों में अलग-अलग स्मृति चिन्ह का उपयोग किया जाता है। *


 * संयुक्त राज्य अमेरिका में और फ्रांस में,  परिवर्णी शब्द PEMDAS आम है। यह पी एंथेसिस, ई एक्सपोनेंट्स, एम गुणन/ डी विजन, ए एडिशन/ एस घटाव के लिए खड़ा है।  PEMDAS को अक्सर स्कूलों में स्मरक " प्लीज़ एक्सक्यूज़ माय डियर आंटी सैली " के रूप में विस्तारित किया जाता है।


 * कनाडा और न्यूजीलैंड बीईडीएमएएस का उपयोग करते हैं, जो बी रैकेट, ई एक्सपोनेंट्स, डी डिवीजन / एम गुणा, एक अतिरिक्त / एस घटाव के लिए खड़ा है।
 * यूके, पाकिस्तान, भारत, बांग्लादेश और ऑस्ट्रेलिया और कुछ अन्य अंग्रेजी बोलने वाले देशों में सबसे आम बोडमास है जिसका अर्थ है या तो बी रैकेट, ऑर्डर, डी डिवीजन/ एम मल्टीप्लिकेशन, ए एडिशन/ एस घटाव या बी रैकेट, ओ एफ, डी विभाजन / एम गुणा, एक जोड़ / एस घटाव।  नाइजीरिया और कुछ अन्य पश्चिम अफ्रीकी देश भी BODMAS का उपयोग करते हैं। इसी तरह यूके में, BIDMAS का भी उपयोग किया जाता है, जो B रैकेट, I सूचकांकों, D डिवीजन/ M गुणा, A एडिशन/ S घटाव के लिए खड़ा होता है।

इस तरह से लिखे जाने पर ये स्मृति चिन्ह भ्रामक हो सकते हैं। उदाहरण के लिए, उपरोक्त नियमों में से किसी का अर्थ "पहले जोड़, बाद में घटाव" की गलत व्याख्या करने से अभिव्यक्ति का गलत मूल्यांकन होगा।


 * $$ a - b + c = (a - b) + c \ne a-(b+c)$$

स्मृति चिन्ह में "जोड़ / घटाव" की व्याख्या इस रूप में की जानी चाहिए कि किसी भी जोड़ और घटाव को बाएं से दाएं क्रम में किया जाना चाहिए। इसी तरह, अभिव्यक्ति a ÷ b × c को कई तरीकों से पढ़ा जा सकता है, लेकिन स्मरक में "गुणा/भाग" का मतलब है कि गुणा और भाग बाएं से दाएं की ओर किया जाना चाहिए।


 * $$ a \div b \times c = (a \div b) \times c \ne a \div (b \times c) $$

विभाजन का प्रतिनिधित्व करने के लिए गुणन और स्लैश के संयोजन के उपयोग के कारण होने वाली अतिरिक्त अस्पष्टताओं पर नीचे चर्चा की गई है। सामान्य तौर पर, अस्पष्टता से बचने का पक्का तरीका कोष्ठकों का उपयोग करना है।

क्रमिक घातांक
यदि घातांक को सुपरस्क्रिप्ट संकेतन का उपयोग करके स्टैक्ड प्रतीकों द्वारा इंगित किया जाता है, तो सामान्य नियम ऊपर से नीचे काम करना है:   :

जो आमतौर पर ( a b ) c के बराबर नहीं है। यह सम्मेलन उपयोगी है क्योंकि घातांक की एक संपत्ति है कि ( a b ) c = a bc, इसलिए इसके लिए सीरियल घातांक का उपयोग करना अनावश्यक है।

हालांकि, कैरेट (^) या तीर (↑) के साथ ऑपरेटर नोटेशन का उपयोग करते समय, कोई सामान्य मानक नहीं है। उदाहरण के लिए, माइक्रोसॉफ्ट एक्सेल और संगणना प्रोग्रामिंग भाषा MATLAB   का मूल्यांकन ( a b ) c के रूप में करती है, लेकिन Google खोज और वोल्फ्राम अल्फा का मूल्यांकन a ( b c ) के रूप में करती है। इस प्रकार   का मूल्यांकन पहले मामले में 4,096 और दूसरे मामले में 262,144 पर किया जाता है।

यूनरी माइनस साइन
यूनरी ऑपरेटर - (आमतौर पर "माइनस" पढ़ा जाता है) के संबंध में अलग-अलग परंपराएँ हैं। लिखित या मुद्रित गणित में, अभिव्यक्ति −3 2 का अर्थ −(32) = −9 है।

कुछ अनुप्रयोगों और प्रोग्रामिंग भाषाओं में, विशेष रूप से माइक्रोसॉफ्ट एक्सेल, प्लानमेकर (और अन्य स्प्रैडशीट एप्लिकेशन), और प्रोग्रामिंग भाषा बीसी, बाइनरी ऑपरेटरों की तुलना में यूनरी ऑपरेटरों की उच्च प्राथमिकता है, अर्थात, एक्सोनेंटिएशन की तुलना में यूनरी माइनस की उच्च प्राथमिकता है। है, इसलिए उन भाषाओं में, -32 की व्याख्या (−3)2 = 9 के रूप में की जाएगी। यह बाइनरी माइनस ऑपरेटर - पर लागू नहीं होता है; उदाहरण के लिए Microsoft Excel में जबकि सूत्र =−2^2, =-(2)^2 एंड =0+−2^2, 4 देता है, सूत्र =0−2^2 एंड =−(2^2) - गिवेस - 4।

मिश्रित विभाजन और गुणन
कुछ अकादमिक साहित्य में, गुणन (निहित गुणन के रूप में जाना जाता है) द्वारा निरूपित गुणा को विभाजन की तुलना में उच्च प्राथमिकता के रूप में व्याख्या की जाती है, ताकि 1 ÷ 2n बराबर 1 ÷ (2n) हो, न कि (1 ÷ 2)n । उदाहरण के लिए, भौतिक समीक्षा पत्रिकाओं के लिए पांडुलिपि जमा करने के निर्देश बताते हैं कि गुणन विभाजन की तुलना में उच्च प्राथमिकता है,  और यह भी प्रमुख भौतिकी पाठ्यपुस्तकों में देखा गया सम्मेलन है जैसे लैंडौ और लाइफशिट्ज और फेनमैन द्वारा सैद्धांतिक भौतिकी का पाठ्यक्रम भौतिकी पर व्याख्यान ।  इस अस्पष्टता का अक्सर इंटरनेट मेम्स जैसे " 8÷2(2+2) " में शोषण किया जाता है।

अस्पष्टता विभाजन के लिए स्लैश प्रतीक, '/' के उपयोग के कारण भी हो सकती है। वास्तविक समीक्षा प्रस्तुत करने के निर्देश फॉर्म a/b/c; इसके बजाय (a/b)/c या a/(b/c) लिखकर अस्पष्टता से बचा जा सकता है।

कैलकुलेटर
विभिन्न कैलकुलेटर संचालन के विभिन्न आदेशों का पालन करते हैं। स्टैक के बिना कई सरल कैलकुलेटर अलग-अलग ऑपरेटरों को दी गई प्राथमिकता के बिना बाएं से दाएं काम करने वाले चेन इनपुट को लागू करते हैं, उदाहरण के लिए टाइपिंग
 * का परिणाम 9 होता है,

जबकि अधिक परिष्कृत कैलकुलेटर अधिक मानक प्राथमिकता का उपयोग करेंगे, उदाहरण के लिए टाइपिंग
 * का परिणाम 7 होता है।

माइक्रोसॉफ्ट कैलक्यूलेटर प्रोग्राम पूर्व को अपने मानक दृश्य में और बाद में अपने वैज्ञानिक और प्रोग्रामर विचारों में उपयोग करता है।

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

कैलकुलेटर घातांकों को बाएँ से दाएँ संबद्ध कर सकते हैं। उदाहरण के लिए, अभिव्यक्ति  एक के रूप में व्याख्या की जाती है a(bc) TI-92 और TI-30 TI-30XS मल्टीव्यू पर मैथप्रिंट मोड में, जबकि इसकी व्याख्या इस रूप में की जाती है (ab)c क्लासिक मोड में TI-30XII और TI-30XS मल्टीव्यू पर है ।

एक अभिव्यक्ति की तरह  TI-82 के साथ-साथ कई आधुनिक Casio कैलकुलेटर द्वारा 1/(2x) के रूप में व्याख्या की जाती है, लेकिन TI-83 द्वारा (1/2)x और 1996 से जारी हर दूसरे TI कैलकुलेटर के रूप में, साथ ही बीजगणितीय अंकन वाले सभी हेवलेट-पैकार्ड कैलकुलेटर द्वारा। जबकि निहित गुणन की प्रकृति के कारण कुछ उपयोगकर्ताओं द्वारा पहली व्याख्या की उम्मीद की जा सकती है, बाद वाला नियम के अनुरूप अधिक है कि गुणन और विभाजन समान प्राथमिकता के हैं।

जब उपयोगकर्ता अनिश्चित होता है कि कैलकुलेटर अभिव्यक्ति की व्याख्या कैसे करेगा, तो अस्पष्टता को दूर करने के लिए कोष्ठक का उपयोग किया जा सकता है।

मानक गणितीय संकेतन में इन्फिक्स संकेतन के अनुकूलन के कारण संचालन का क्रम उत्पन्न हुआ, जो कि ऐसे सम्मेलनों के बिना सांकेतिक रूप से अस्पष्ट हो सकता है, जैसा कि प्रत्यय संकेतन या उपसर्ग संकेतन के विपरीत होता है, जिन्हें संचालन के आदेश की आवश्यकता नहीं होती है। इसलिए, पूर्वता के सही क्रम में अभिव्यक्ति दर्ज करने के लिए स्टैक (डेटा संरचना) का उपयोग करके रिवर्स पोलिश नोटेशन (RPN) का उपयोग करने वाले कैलकुलेटर को कोष्ठक या निष्पादन के किसी संभावित मॉडल-विशिष्ट क्रम की आवश्यकता नहीं होती है।

प्रोग्रामिंग लैंग्वेज
कुछ प्रोग्रामिंग लैंग्वेज पूर्ववर्ती स्तरों का उपयोग करती हैं जो आमतौर पर गणित में उपयोग किए जाने वाले क्रम के अनुरूप होते हैं, हालांकि अन्य, जैसे कि एपीएल (APL प्रोग्रामिंग लैंग्वेज), स्मॉलटॉक, ओकाम (प्रोग्रामिंग लैंग्वेज) और मैरी (प्रोग्रामिंग लैंग्वेज), का कोई ऑपरेटर (प्रोग्रामिंग) पूर्ववर्ती नियम नहीं है (एपीएल में, मूल्यांकन बाएं से दाएं है; स्मॉलटाक में, यह बाएं से दायां है)।

इसके अलावा, क्योंकि कई ऑपरेटर साहचर्य नहीं हैं, किसी भी एक स्तर के भीतर ऑर्डर आमतौर पर बाएं से दाएं समूह द्वारा परिभाषित किया जाता है ताकि  के रूप में समझा जाता है  इसके बजाय ; ऐसे ऑपरेटरों को वाम साहचर्य कहा जाता है। अपवाद मौजूद हैं; उदाहरण के लिए, सूचियों पर विपक्ष ऑपरेशन के अनुरूप ऑपरेटरों वाली भाषाएं आमतौर पर उन्हें दाएं से बाएं समूह बनाती हैं (दाएं सहयोगी), उदा। हास्केल (प्रोग्रामिंग भाषा) में,.

सी (प्रोग्रामिंग लैंग्वेज) के निर्माता डेनिस रिची ने सी में वरीयता के बारे में कहा है (प्रोग्रामिंग भाषाओं द्वारा साझा किया गया है जो सी से उन नियमों को उधार लेते हैं, उदाहरण के लिए, सी ++, पर्ल और पीएचपी) कि बिटवाइज़ को स्थानांतरित करना बेहतर होता संबंधपरक ऑपरेटर के ऊपर ऑपरेशन। कई प्रोग्रामर इस क्रम के आदी हो गए हैं, लेकिन हाल ही में पायथन और रूबी जैसी लोकप्रिय भाषाओं में यह क्रम उलटा हुआ है। कई सी-शैली भाषाओं में पाए जाने वाले ऑपरेटर (प्रोग्रामिंग) के सापेक्ष पूर्ववर्ती स्तर इस प्रकार हैं:

उदाहरण: (ध्यान दें: नीचे दिए गए उदाहरणों में, '≡' का अर्थ समान है, और उदाहरण अभिव्यक्ति के हिस्से के रूप में उपयोग किए जाने वाले वास्तविक असाइनमेंट ऑपरेटर के रूप में व्याख्या नहीं किया जाना चाहिए।) (पाइथन (प्रोग्रामिंग भाषा), रूबी (प्रोग्रामिंग भाषा), पारी/जीपी ( PARI/GP) और अन्य लोकप्रिय भाषाओं में,  ≡  .)

सोर्स-टू-सोर्स कंपाइलर्स जो कई भाषाओं में संकलित होते हैं, उन्हें स्पष्ट रूप से भाषाओं में संचालन के विभिन्न क्रम के मुद्दे से निपटने की आवश्यकता होती है। उदाहरण के लिए हैक्स ऑर्डर को मानकीकृत करता है और जहां उचित हो वहां कोष्ठक डालकर इसे लागू करता है।

बाइनरी ऑपरेटर वरीयता के बारे में सॉफ्टवेयर डेवलपर ज्ञान की सटीकता को स्रोत कोड में उनकी आवृत्ति की आवृत्ति का बारीकी से पालन करने के लिए पाया गया है।

यह भी देखें

 * सामान्य ऑपरेटर संकेतन (अधिक औपचारिक विवरण के लिए)
 * हाइपरऑपरेशन
 * संचालक साहचर्य
 * ऑपरेटर ओवरलोडिंग
 * C एंड C ++ में ऑपरेटर प्राथमिकता
 * पोलिश संकेतन
 * रिवर्स पोलिश नोटेशन