से विकिपीडिया लेख :
स्थान अंकगणित (लैटिन अंकगणितीय लोकलिस) एडिटिव (नॉन-पोजिशनल) बाइनरी अंक प्रणाली है, जिसे जॉन नेपियर ने अपने ग्रंथ रैडोलॉजी (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
वर्णमाला का दूसरा अक्षर है, इसलिए हमें de
1 अक्षर से बदलाव करना होगा , इसलिए यह बन जाता है 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
?