संभव सबसे कम विशिष्ट वर्ण के साथ एक कार्यक्रम सांकेतिक शब्दों में बदलना,


12

लक्ष्य एक ऐसा कार्यक्रम लिखना है जो संभवत: सबसे कम चरित्र के साथ एक अन्य कार्यक्रम (इनपुट) को एन्कोड करता है।

स्कोरिंग

  • स्कोर आउटपुट के लिए आवश्यक विभिन्न वर्णों के बराबर है।
  • लोअर स्कोर बेहतर है।

नियम

  • सीमित लक्ष्य के साथ कोई लक्ष्य भाषा नहीं। (नो ब्रेनफ ** के, व्हॉट्सएप आदि)
    संपादित करें : मेरा मतलब है कि कम से कम 26 महत्वपूर्ण अक्षर, Aब्रेनफ ** के प्रोग्राम को संचालित करने के तरीके को नहीं बदलते हैं, इसलिए आप इस चरित्र को नहीं गिन सकते। वही व्हाट्सएप पर लागू होता है।
  • लक्ष्य भाषा उस समय मौजूद होनी चाहिए जहां यह प्रश्न लिखा गया हो।
  • आपको एक छोटा स्पष्टीकरण शामिल करना होगा कि आप अपने स्कोर को कैसे संग्रहीत करते हैं।
  • इनपुट प्रोग्राम मान्य है।
  • एन्कोडेड प्रोग्राम इनपुट के समान भाषा में मान्य प्रोग्राम होना चाहिए।
  • एन्कोडेड प्रोग्राम को मूल प्रोग्राम की तरह ही काम करना चाहिए।
  • आपका एनकोडर उस भाषा के हर वैध कार्यक्रम के लिए काम करना चाहिए।
  • कुछ नमूना इनपुट और आउटपुट शामिल करें।

टिप्पणियाँ

उदाहरण

जावा में, आप \uXXXXअन्य वर्णों के बजाय उपयोग कर सकते हैं । एक मान्य प्रविष्टि इनपुट से हर वर्ण को इस तरह एन्कोड करती है। यह 18 का स्कोर होगा। ( \ 0-9a-f)

Tcl में कोड, जावा प्रोग्राम को एनकोड करता है:

set res {}
foreach char [split [read stdin] {}] {
    append res [format \\u%04x [scan $char %c]]
}
puts $res

वोट के लिए खेद है ... सोचा कि यह codegolf.stackexchange.com/questions/6974 का एक डुप्लिकेट था लेकिन वह एक अजगर-विशिष्ट था।
बूथ

2
आपके साथ जावा स्कोर और आपका एनकोडर: मैं ज्यादा Tcl नहीं बोलता, लेकिन getsकेवल इनपुट की एक पंक्ति नहीं पढ़ता? और आप uअपने एनकोडर में चूक गए (लेकिन दूसरी तरफ आपको स्थान की आवश्यकता नहीं है और इस तरह स्कोर समान रहता है)।
हावर्ड

7
क्या सभी प्रोग्रामिंग भाषाओं में "कमांड का सीमित सेट" नहीं है? आपने पंक्ति को कहां खींचा था?
jpjacobs

4
मैं इसे बंद करने के लिए मतदान कर रहा हूं क्योंकि यह एक टूटी हुई जीत की स्थिति है जो भाषाओं पर बहुत अस्पष्ट प्रतिबंध से अधिक है। यदि Unary पर प्रतिबंध नहीं लगाया गया था, तो यह स्कोर होगा 1. अगर ब्रेनफक को प्रतिबंधित नहीं किया गया था, तो यह 7 स्कोर करेगा (ध्यान दें कि भाषा में स्वाभाविक रूप से 8 कमांड + 248 टिप्पणी वर्ण हैं)। तो जहां स्वाभाविक रूप से बहुत कम आदेशों के बीच की रेखा है, और वैध होने के लिए पर्याप्त है।

1
यहां तक ​​कि पायथन जैसी भाषाओं में भी सीमित संख्या में आदेश हैं। आप "एक नया बना नहीं सकते", आप बस एक नया फ़ंक्शन या कुछ बनाते हैं, लेकिन आरक्षित शब्द समान रहते हैं। "कमांड" की परिभाषा स्पष्ट नहीं है। यह सवाल संभवतः भाषाओं को सीमित न करके तय किया जा सकता है (केवल तुच्छ उत्तरों को न उकेरें), और यह आवश्यक है कि प्रयुक्त वर्णों का समुच्चय भाषा में उचित उपसमूह होना चाहिए।
mbomb007

जवाबों:


10

GolfScript / GolfScript, स्कोर 4

"'',,"\{"'"\","*"',+"}%"''+~"

एनकोडर खुद एक गोल्फस्क्रिप्ट प्रोग्राम है जो STDIN पर मूल कोड लेता है और इसे वर्णों के अनुक्रम में बदल देता है ',+~। यह आउटपुट स्वयं मान्य गोल्फस्क्रिप्ट कोड है जो मूल संस्करण के समान संचालन करता है।

मूल विधि में एक स्ट्रिंग के रूप में कोड का एन्कोडिंग होता है (चार्ट का उपयोग करके ',+, नीचे देखें) और फिर इस स्ट्रिंग का मूल्यांकन eval कमांड का उपयोग करके किया जाता है ~

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

उदाहरण:

इनपुट कोड

"hi"
p

में अनुवादित है (ध्यान दें: पठनीयता के लिए लाइन ब्रेक और टिप्पणियां जोड़ी गईं)

# initialize an empty array []
'',,

# append number 34 (length of string ',,, ... ,,,')
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',+

# ... other numbers
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',+
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',+
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',+
',,,,,,,,,,',+
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',+

# result is array [34 104 105 34 10 112]

# append empt string, i.e. convert array to string (results in "\"hi\"\np")
''+

# evaluate
~

11

अजगर -> अजगर, 8 अलग-अलग वर्ण

def minimal_python(input_code):
    """Convert Python code to minimal Python code."""

    # Create a list of the ordinal numbers of <input_code>'s characters.
    # '%' signs have to be treated specially and are represented with -1.
    ords = []
    num_escaped_chars = 0
    for char in input_code:
        if char == '%':
            ords.append(-1)
        else:
            ords.append(ord(char))
            num_escaped_chars += 1

    modulo_sign_escape = '%' * 2**num_escaped_chars
    def formatters():
        num_escaped_chars_so_far = 0
        for o in ords:
            if o == -1:
                yield modulo_sign_escape
            else:
                yield '%' * 2**num_escaped_chars_so_far + 'c'
                num_escaped_chars_so_far += 1
    format_str = "'" + ''.join(formatters()) + "'"

    values_str = ''.join('%' + '-~'*o + '0' for o in ords if o != -1)

    return 'exec' + format_str + values_str

यह इनपुट स्ट्रिंग के पुनर्निर्माण के लिए मोडुलो फॉर्मेटिंग का उपयोग करता है। उदाहरण के लिए, print 1इस कार्यक्रम में परिणाम:

exec'%c%%c%%%%c%%%%%%%%c%%%%%%%%%%%%%%%%c%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%c%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%c'%-~-~-~-~-~-~-~-~-~-
~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~0%-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~0%-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
~-~-~-~0%-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~0%-~-~-~-~-
~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~0%-~-~-~-~-~-~-~-
~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~0%-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~0

सिद्धांत रूप में आप इस तरह के किसी भी कार्यक्रम को एन्कोड कर सकते हैं, लेकिन परिणामी कार्यक्रम में हमेशा 2 से अधिक n अक्षर होंगे, जहां n इनपुट में वर्णों की संख्या है, %प्रतीकों सहित नहीं ।


परिणामी कार्यक्रम का निचला भाग 2**n+3*n-1 + 6वर्ण है, जिसमें सभी इनपुट वर्ण शामिल हैं (यदि आप मानते हैं कि प्रत्येक वर्ण NUL बाइट है)। यह OEIS A132074 , प्लस 6 के लिए लिया गया है exec''। यदि आप मानते हैं कि अक्षर मुद्रण योग्य ASCII होना चाहिए, तो निम्न सीमा अधिक है। repl.it/EHEN
mbomb007

8

CJam -> CJam, स्कोर: 3

CJam प्रश्न की तुलना में नया है इसलिए यह जीतने के योग्य नहीं है।

q{[{_'(>{'(-')*''\+}{is'c+T}?}%{"+"T}*'~]}:T~

इसका उपयोग करता है ')~')चरित्र है ), और प्रत्येक अतिरिक्त )इसे एक-एक करके बढ़ाता है। ~एक चरित्र या एक स्ट्रिंग का मूल्यांकन कर सकते हैं। संपूर्ण कार्यक्रम का मूल्यांकन सभी पात्रों के मूल्यांकन के बाद किया जाता है +। और वर्ण मान और संख्या-से-वर्ण ऑपरेशन के पूर्णांक का मूल्यांकन प्रत्येक वर्ण से कम के लिए किया जाता है )

उदाहरण

XX{_2$+}I*]N*

में अनुवादित है:

'))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~'))))))))))')))~')))))))))))'))))))))))))))')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~~')))~')))')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~')))))))))))))))))))))))))))))))))')))~'))')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))')))~'))))))))))))))))))))))))))))))))))))))')))~'))')))~~

तथा

q{[{_'(>{'(-')*''\+}{is'c+T}?}%{"+"T}*'~]}:T~

में अनुवादित है:

')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~')))))))))))))))))))))))))))))))))))))))))))))))))))')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~')))))))))))')))))))))))))))))')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~~')))~'))))))))))))'))))))))')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~~')))~'))))))))))))))))))))))')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~')))))))))))')))))))))))))))))')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~~')))~'))))))))))))'))))))))')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~~')))~')))))')))~')))))))))))')))))))))))))))))')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~~')))~')')))~'))')))~')))))))))))')))))))))))))))))')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~~')))~')))))))))))')))))))))))))))))')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~~')))~'))))))))))))))))))))))))))))))))))))))))))))))))))))')))~')))')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~')))))))))))')))))))))))))))))')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~~')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~')))')))~'))))))))))))))))))))))))))))))))))))))))))))')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~')))))))))))))))))))))))')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~')))))))))))')))))))))))))))')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~~')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~')))))))))))'))))))))))))')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~~')))~')))')))~')))))))))))'))))))))))))')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~~')))~'))))))))))))))))))))))))))))))))))))))))))))')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~'))')))~')))))))))))')))))))))))))))))')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~~')))~'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))')))~')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~'))))))))))))))))))')))~'))))))))))))))))))))))))))))))))))))))))))))')))~'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))~~

4

एपीएल (स्कोर: 10)

'⍎⎕AV[',(⊃,/{'(⍴',(⍵/'⍬'),')'}¨⎕AV⍳⍞),']'

एन्कोडिंग में प्रयुक्त वर्ण: ⍎⎕AV[(⍴⍬)]

सांकेतिक शब्दों में बदलना करने के लिए एपीएल कार्यक्रम को केवल एपीएल चारसेट तक ही सीमित रखना चाहिए और किसी भी अतिरिक्त यूनिकोड का उपयोग नहीं करना चाहिए।

कार्यक्रम के लिए एन्कोडिंग 42(जो जीवन, ब्रह्मांड और सब कुछ के उत्तर का उत्पादन करता है):

⍎⎕AV[(⍴⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬)(⍴⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬⍬)]

यह कैसे काम करता है: खाली सूची है, ⍬⍬⍬⍬इसलिए चार खाली सूची की सूची है, चार खाली सूची ⍴⍬⍬⍬⍬की सूची की लंबाई है, जो चार है। डायडिक फेरबदल है, इसलिए लंबाई-की-सूची के निर्देशों को कोष्ठक में लपेटा जाना चाहिए, जिससे वर्ण संख्या चार का अंतिम एन्कोडिंग दिया जा सकता है (⍴⍬⍬⍬⍬)

फिर इन नंबरों को देखा जाता है ⎕AVजिसमें वर्ण सेट होता है, और परिणामी स्ट्रिंग को निष्पादित करता है।

(पहली नजर में ऐसा लग रहा है कि स्कोर को बचाने और सहेजने के ⎕UCSबजाय स्कोर को 9 पर लाया जा सकता है , लेकिन यह काम नहीं करता है, क्योंकि स्केलर की सूची की सूची है, अर्थात इसके बजाय इसकी आवश्यकता होगी, और इसके आसपास काम करना होगा। अल्पविराम के साथ एन्कोड किए गए मानों को प्रतिच्छेद करने की आवश्यकता होगी, स्कोर को वापस लाने के लिए 10.)⎕AV[](⍴⍬)(⍴⍬)[[1], [1]][1, 1]


2

RProgN , 7 डिस्टि्रक्ट कैरेक्टर, नॉन-कंपेटिंग

RProgN इस सवाल से नया है।

' do.Lc

प्रोग्राम को कन्वर्ट करें 'oooo...' L c 'ooooo...' L c 'oo...' L c . . . do, जहां प्रत्येक 'oo ...' ओ में वर्ण कोड का प्रतिनिधित्व करता है, जो एपोस्ट्रेपी से घिरा हुआ है ताकि उनमें से एक स्ट्रिंग बना सके। L c फिर उन्हें एक संख्या स्थिरांक में बदल देता है। सभी स्ट्रिंग्स को स्टैक पर रखे जाने के बाद, एन्कोडेड स्ट्रिंग माइनस में वर्णों की मात्रा के बराबर की एक श्रृंखला एन्कोडेड स्ट्रिंग का पुनर्निर्माण करती है, और इसे निष्पादित करती है।

एनकोडर, जिसे RProgN में भी लिखा गया है।

'oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'ooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooooooooooooooooo' L c 'ooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'ooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'ooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooooo' L c 'ooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'ooooooooooooooooooooooooooooooooooooooo' L c 'ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'ooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooooo' L c 'ooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'ooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'ooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'ooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'ooooooooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'ooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' L c 'ooooooooooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooo' L c 'oooooooooooooooooooooooooooooooooooooooooooooo' L c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . do

इसे ऑनलाइन आज़माएं!


1

रूबी -> रूबी, y

#Convert a number from 0 to 255 to the form "111+11+11+1+1+1"
def byte_to_ones(byte)
  output = []
  ones = [111,11,1]
  ones.each do |one|
    while byte>=one
      byte-=one
      output<<one
    end
  end
  output.join('+')
end

bytes = $<.each_byte.map { |byte| byte_to_ones(byte) }

puts "eval''<<#{bytes.join('<<')}"

नमूना:

puts "Hello, world!" => eval''<<111+1<<111+1+1+1+1+1+1<<111+1+1+1+1+1<<111+1+1+1+1<<11+11+1+1+1+1+1+1+1+1+1+1<<11+11+11+1<<11+11+11+11+11+11+1+1+1+1+1+1<<11+11+11+11+11+11+11+11+11+1+1<<11+11+11+11+11+11+11+11+11+1+1+1+1+1+1+1+1+1<<11+11+11+11+11+11+11+11+11+1+1+1+1+1+1+1+1+1<<111<<11+11+11+11<<11+11+1+1+1+1+1+1+1+1+1+1<<111+1+1+1+1+1+1+1+1<<111<<111+1+1+1<<11+11+11+11+11+11+11+11+11+1+1+1+1+1+1+1+1+1<<11+11+11+11+11+11+11+11+11+1<<11+11+11<<11+11+11+1<<1+1+1+1+1+1+1+1+1+1

जुड़े हुए समस्या में दिए गए रूबी समाधान को लागू करता है और आई / ओ को निष्कासित करता है।


यह प्रश्न निकाय में पहले से ही जुड़ा हुआ था; मैं आपकी टिप्पणी का उपयोग नहीं कर रहा था। जब से आप उन्हें रिवर्स-इंजीनियर करना चाहते हैं, तब से वहां से जवाबों को पोर्ट करना गैर-तुच्छ है।
हिस्टोक्रेट

1
मैंने प्रश्न निकाय में उस प्रश्न के संदर्भ को याद किया। मुझे अभी भी नहीं लगता कि इसका उत्तर बदलना बहुत दिलचस्प है, लेकिन मैं अपनी पिछली टिप्पणी को माफी के साथ वापस ले लेता हूं।
पीटर टेलर

0

05AB1E , 8 अलग - अलग बाइट्स (गैर-प्रतिस्पर्धात्मक)

žĆISk'>×€"žĆ0ÿè"J…J.V«?

गैर-प्रतिस्पर्धात्मक, क्योंकि 05AB1E के इस संस्करण को 2018 के मध्य में जारी किया गया था (और 05AB1E विरासत का पहला संस्करण दिसंबर 2015 को जारी किया गया था, हालांकि उस संस्करण में बिलियन का अभाव था žĆ)।

इसे ऑनलाइन आज़माएं।

स्पष्टीकरण:

žĆ        # Push the 05AB1E code-page
  IS      # Push the input, and convert it to a list of characters
    k     # Get the index of each character in the codepage-string
     '>× '# Convert each index to a string of that many repeated ">"-characters
         # For each ">"-string:
 "žĆ0ÿè"  #  Map it to the string "žĆ0ÿè",
          #  where the `ÿ` is automatically filled with the ">"-string
J         # Join these strings together
 J.V«    # And append "J.V" at the end
      ?   # After which we output the string without trailing newline

यह žĆ0>èJ.Vनिम्नलिखित प्रारूप में 8 अलग-अलग बाइट्स के साथ एक कार्यक्रम का उत्पादन करेगा :

žĆ0>...>èकार्यक्रम के प्रत्येक चरित्र के लिए एकाधिक हम इनपुट करते हैं (जहां >...>अधिकतम 256 तक की राशि के बीच संभावित नहीं हैं >):

  • žĆ: 05AB1E कोड-पृष्ठ पुश करें
  • 0: पुश ए 0
  • की एक निश्चित राशि >(संभवतः कोई भी, अधिकतम 256 तक), जो प्रत्येक 1 से बढ़ जाती है
  • è: इस पूर्णांक को कोड-पृष्ठ स्ट्रिंग में अनुक्रमित करें

और उसके बाद:

  • J: इन अनुक्रमित वर्णों को बिना सीमांकक के एक साथ ढेर पर सम्मिलित करें
  • .V: और इस स्ट्रिंग का मूल्यांकन 05AB1E कोड के रूप में करें
  • (जिसके बाद परिणाम अनुमानित रूप से उत्पादन होता है)

के लिए इस तरह के एक कार्यक्रम का प्रयास करें ( यह लोअरकेस वर्णमाला को धक्का देगा और इसे अंधा कर देगा)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.