Malbolge प्रोग्रामिंग भाषा की कई विशिष्ट विशेषताओं में से एक इसका अत्यधिक अनपेक्षितOP
ऑपरेटर है, जिसे केवल प्रलेखन और स्रोत कोड में "op" के रूप में संदर्भित किया जाता है, लेकिन लोकप्रिय रूप से इसे "पागल" ऑपरेटर के रूप में जाना जाता है। जैसा कि इसके दस्तावेज में, भाषा के निर्माता, बेन ओल्मस्टेड द्वारा वर्णित किया गया है: " पैटर्न की तलाश मत करो, यह वहां नहीं है ।"
ऑप एक "ट्राइटवाइज" ऑपरेटर है - यह अपने दो तर्कों के संबंधित त्रैमासिक अंकों पर कार्य करता है। प्रत्येक ट्रिट (टर्नरी बिट) के लिए, ऑप का परिणाम निम्न लुकअप टेबल द्वारा दिया गया है:
a
op(a,b) 0 1 2
+-------
0 | 1 0 0
b 1 | 1 0 2
2 | 2 2 1
उदाहरण के लिए, गणना करने के लिए op(12345, 54321)
, पहले टर्नरी में दोनों संख्याओं को लिखें और फिर तालिका में प्रत्येक जोड़ी को देखें:
0121221020 (12345_3)
op 2202111220 (54321_3)
--------------
2202220211 (54616_3)
पिछले महत्वपूर्ण मुद्दा यह है कि Malbolge में सभी मान तो इनपुट मानों से 10 की चौड़ाई के लिए शून्य के साथ गद्देदार किया जाना चाहिए 10 trits विस्तृत, कर रहे हैं (उदाहरण के लिए, op(0, 0)
है 1111111111
त्रिगुट में।)
आपका कार्य इनपुट के रूप में दो पूर्णांक 0 is a
, b
<59049 लेना है और पूर्णांक मान को आउटपुट करना है op(a,b)
।
परीक्षण मामलों (प्रारूप में a b op(a,b)
):
0 0 29524
1 2 29525
59048 5 7
36905 2214 0
11355 1131 20650
12345 54321 54616
यहां एक संदर्भ कार्यान्वयन (मालबोज स्रोत कोड से सीधे कॉपी किया गया) है।
54616_3
इसका मतलब यह नहीं है "यह दूसरी बात दशमलव संख्या 54616 है, लेकिन इसे आधार तीन के रूप में दर्शाया गया है"। इसका अर्थ है " 54616
आधार 3 के रूप में पढ़ें "। जो, निश्चित रूप से, आप ऐसा नहीं कर सकते हैं (ऐसे अंक हैं जो वाल्व वहाँ नहीं गिन सकते हैं)। यदि आप _3
पूरी तरह से छुटकारा पा चुके हैं , और अधिक सटीक है, तो यह अभी भी शायद उतना ही स्पष्ट होगा ।