समझदार एक सरल बिटवाइज़ भाषा है जिसे मैंने कुछ समय पहले डिज़ाइन किया था। यह पायथन के बिटवाइज ऑपरेशन के आसपास आधारित है । इसके कई ऑपरेशन हैं इनमें से अधिकांश पायथन में समान प्रतीक के समान या बहुत समान हैं।
:
ढेर के ऊपर डुप्लिकेट?
स्टैक के शीर्ष को नीचे तक घुमाएं!
स्टैक के निचले हिस्से को ऊपर की ओर घुमाएं[
]
लूप जबकि स्टैक के शीर्ष शून्य नहीं है~
ढेर के ऊपर नहीं (-(n+1)
)-
ढेर के ऊपर नकारात्मक (-n
)>
स्टैक के शीर्ष को दाईं ओर एक बार (n//2
)<
बाईं ओर एक बार स्टैक के शीर्ष पर बिटशिफ्ट करें (n*2
)^
स्टैक के शीर्ष दो आइटम xor ( पायथन के समान )|
या स्टैक के शीर्ष दो आइटम ( वही पायथन के रूप में )&
और स्टैक के शीर्ष दो आइटम ( वही पायथन के रूप में )
समझदार में पूर्णांक बनाना बहुत सरल है आप इसे शून्य बना सकते हैं ::^
और इसे बढ़ा सकते हैं, ~-
इसलिए आप शून्य बनाते हैं और इसे बढ़ाते हैं। हालाँकि अगर हम -
चीजों को हटा दें तो कुछ और दिलचस्प हो जाएगा।
हम शेष संचालन का उपयोग करके अभी भी हर संख्या बना सकते हैं। उदाहरण के लिए यहाँ 3 है
~<<~
यह काम करता है क्योंकि बिट्स ~
, एक अनंत स्ट्रिंग ऑफ 0
बिट्स, एक नेगेटिव, बिट्स की एक अनंत स्ट्रिंग में 1
, प्रत्येक छोर पर थोड़ा सा <
संलग्न होता है 0
, जब हम काम करते हैं तो हम करते हैं ~
जो प्रत्येक को एस के एक स्ट्रिंग में बदल देता है और 0
उसके बाद दो 1
एस होता है। , या जैसा कि ज्यादातर लोग इसे 3 कहते हैं।
कार्य
एक प्रोग्राम लिखें जो एक सकारात्मक पूर्णांक दिए जाने पर एक समझदार प्रोग्राम का उत्पादन करेगा जो अपने स्रोत (आउटपुट के स्रोत, आप अपने स्वयं के स्रोत में उपयोग कर सकते हैं ) के n
बिना संख्या बनाएंगे । आप मान सकते हैं कि स्टैक के शीर्ष पर पहले से ही एक शून्य है।-
-
यह कोड-गोल्फ नहीं मेटा-गोल्फ है, इसलिए आपको उत्पादन स्रोत कोड को कम करने का लक्ष्य नहीं होना चाहिए , जरूरी नहीं कि आउटपुट।
उदाहरण आउटपुट
यह सूची संपूर्ण नहीं है कि वे केवल संभावित आउटपुट हैं
1 -> ~<~
2 -> ~<~<
3 -> ~<<~
4 -> ~<~<<
5 -> ~<~:<<|
6 -> ~<<~<
7 -> ~<<<~
8 -> ~<~<<<
9 -> ~<~:<<<|
10 -> ~<~:<<|<
11 -> ~<<~:><<<|
12 -> ~<<~<<
13 -> ~<<~:<<<|>
14 -> ~<<<~<
15 -> ~<<<<~
16 -> ~<~<<<<
:
रूप से एक खाली ढेर पर लागू किया जाता है एक धक्का 0
। मुझे लगता है कि इसे निर्दिष्ट किया जाना चाहिए, क्योंकि यह स्पष्ट नहीं है कि एक खाली स्टैक से नकल करना चाहिए0
positive integers