से विकिपीडिया लेख :
स्थान अंकगणित (लैटिन अंकगणितीय लोकलिस) एडिटिव (नॉन-पोजिशनल) बाइनरी अंक प्रणाली है, जिसे जॉन नेपियर ने अपने ग्रंथ रैडोलॉजी (1617) में प्रतीकात्मक तकनीक के रूप में प्रतीकात्मक रूप से और शतरंज की तरह ग्रिड पर दोनों में खोजा था।
क्या?
स्थान अंक वर्णमाला के अक्षरों का उपयोग करके संख्या लिखने का एक तरीका है।
बाइनरी नोटेशन को अभी तक मानकीकृत नहीं किया गया था, इसलिए नेपियर ने बाइनरी संख्याओं का प्रतिनिधित्व करने के लिए स्थान अंक का उपयोग किया। नेपियर की प्रणाली संख्याओं का प्रतिनिधित्व करने के लिए साइन-वैल्यू नोटेशन का उपयोग करती है; यह दो की क्रमिक शक्तियों का प्रतिनिधित्व करने के लिए अंग्रेजी वर्णमाला के क्रमिक अक्षरों का उपयोग करता है: a = 2 ^ 0 = 1, b = 2 ^ 1 = 2, c = 2 ^ 2 = 4, d = 2 ^ 3 = 8, e = 2 ^ 4 = 16 और इतने पर।
एक उदाहरण
ab आधार 10 में = 1 + 2 = 3
aabb आधार 10 में = 1 + 1 + 2 + 2 = 6
ध्यान दें कि पत्र के किसी भी 2 उदाहरणों को उच्चतर द्वारा प्रतिस्थापित करके aabbछोटा किया जा सकता है bc।
इसके अलावा
आप बस दो संख्याओं को संक्षिप्त करें और सरल करें।
acd+ bde= acdbde= abcdde= acebe= abcf= 39आधार १० में
घटाव
घटाव के दोनों हिस्सों में समान रूप से दिखने वाले सभी अंकों को हटा दें। विस्तार करना (परिवर्तित bकरना aa) आवश्यक हो सकता है
abde- ad= be= आधार १० में १ base
गुणन
यह थोड़ा कठिन है।
हम कहते हैं कि हम acd(13) गुणा def(56) करना चाहते हैं। पहले आप acdलंबवत व्यवस्था करें:
a
c
d
फिर आप defपहले के बाद जोड़ें a:
a def
c
d
अब, c, वर्णमाला की तुलना में बाद में 2 स्थान है, इसलिए हम defबनाने के लिए वर्णमाला में 2 स्थान जोड़ते हैं fgh। इसे दूसरी पंक्ति में जोड़ा जाता है।
a def
c fgh
d
अंत में, d, c की तुलना में वर्णमाला में बाद में 1 स्थिति है, इसलिए हम fghबनाने के लिए वर्णमाला में 1 स्थान जोड़ते हैं ghi। इसे तीसरी पंक्ति में जोड़ा जाता है।
a def
c fgh
d ghi
फिर आप सही का योग लेते हैं: def+ fgh+ ghi= deffgghhi= deggghhi= deghhhi= deghii= = deghj(728)
गुणन का एक और उदाहरण
इनपुट:
bc * de
प्रथम:
b
c
फिर
b ef
c
फिर
b ef
c fg
ध्यान दें कि हमने efपहली पंक्ति में नीचे लिखा था। ऐसा इसलिए है क्योंकि इससे bcशुरू होता है b, और bवर्णमाला का दूसरा अक्षर है, इसलिए हमें de1 अक्षर से बदलाव करना होगा , इसलिए यह बन जाता है ef।
फिर
ef+fg
आउटपुट:
eh
विभाजन
यह इस चुनौती का हिस्सा नहीं है, क्योंकि यह बहुत जटिल हो सकता है।
आपकी वास्तविक चुनौती
आपका प्रोग्राम या फ़ंक्शन इनपुट को एक स्ट्रिंग के रूप में लेना चाहिए जो इस तरह दिखता है:
a + b
और आपको आउटपुट चाहिए:
ab
बेशक, अपने कार्यक्रम या समारोह ऑपरेटरों से किसी के साथ (अपनी भाषा की स्ट्रिंग या इनपुट सीमा तक) मनमाना लंबाई की संख्या का समर्थन करना चाहिए +, -या *। कुछ और उदाहरण:
इनपुट:
ab + bd
आउटपुट:
acd
इनपुट:
d - ab
आउटपुट:
ac
इनपुट:
ab * cd
आउटपुट:
cf
टिप्पणियाँ:
- आउटपुट में अक्षरों का क्रम मायने नहीं रखता है, लेकिन आप हमेशा यह मान सकते हैं कि इनपुट में संख्याओं का क्रम आरोही होगा (पहले z)।
- आप एक अनुगामी newline और एक अनुगामी newline के साथ आउटपुट के साथ इनपुट ले सकते हैं।
- आप कर सकते हैं नहीं की एक सूची के रूप में इनपुट ले
ab,*औरbdके लिएab * bd। - अंग्रेजी वर्णमाला का उपयोग किया जाता है (
abcdefghijklmnopqrstuvwxyz) - आपका आउटपुट सरल होना चाहिए (
aaअनुमति नहीं है,bआवश्यक है) - इनपुट सरलीकृत किया जाएगा (
b+c, नहींaa+bbयाaa+aaaa) - आप से पहले एक स्थान और ऑपरेटर (आवश्यकता हो सकती है
+,-या*), या आप कोई भी होने की आवश्यकता हो सकती है। - प्रति इनपुट केवल एक ऑपरेटर होगा।
- आप मान सकते हैं कि आउटपुट और इनपुट कभी 2 ^ 27-1 (
abcdefghijklmnopqrstuvwxyz) से अधिक नहीं होंगे - यह कोड-गोल्फ है , इसलिए बाइट्स में सबसे कम जवाब जीतता है!
bc*de==efghलेकिन efghहै 240नहीं144
bc*deहोना चाहिएeh
d is 2 positions later in the alphabet than cक्या यह राइट है? क्या यह नहीं होना चाहिए1?That is added to the second row.एक ही वाक्य पर, यह नहीं होना चाहिएthird?