एक क्विन्ट पलटना!


11

हम सब जानते हैं कि एक रानी क्या है। एक उलटा क्वाइन एक गैर-खाली कार्यक्रम है जो अपने स्रोत कोड को पढ़ने के बिना अपने स्रोत कोड के व्युत्क्रम को प्रिंट करता है, और इसमें केवल मुद्रण योग्य-एएससीआईआई अक्षर (अंतरिक्ष के माध्यम से ~) होते हैं।

यहां, "स्रोत कोड का विलोम" का अर्थ निम्न है: आपके प्रोग्राम के आउटपुट में प्रत्येक मुद्रण योग्य ASCII वर्ण (m - c) बार होना चाहिए , जहां c आपके कोड में वर्ण के बार होने की संख्या है, और m अधिकतम है किसी भी वर्ण की संख्या आपके कोड में दोहराई जाती है।

(दूसरे शब्दों में: अपने कोड + अपने उत्पादन = के क्रमचय मीटर । प्रिंट करने योग्य-ASCII के हर समय)

उदाहरण के लिए, यदि आपका प्रोग्राम है 12345, तो m = 1 , और आपको इस स्ट्रिंग के किसी भी क्रमपरिवर्तन का उत्पादन करना चाहिए:

 !"#$%&'()*+,-./06789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

यदि आपका कार्यक्रम है AAB, तो m = 2 , और आपको किसी भी क्रमपरिवर्तन का उत्पादन करना चाहिए:

  !!""##$$%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@BCCDDEEFFGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ[[\\]]^^__``aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~

ध्यान दें कि कैसे दो लापता Aएस हैं, और एक लापता है B

यद्यपि एक प्रोग्राम जिसमें सभी मुद्रण योग्य ASCII वर्ण और आउटपुट कुछ भी नहीं है, एक वैध उलटा क्वीन है (संतोषजनक m = 1 ), इस तरह का उत्तर बहुत प्रतिस्पर्धी नहीं होगा, इसकी लंबाई दी गई है।

आप एक प्रोग्राम लिखने वाले हैं जो एक उल्टा क्वीन है, जैसा कि ऊपर दिए गए पैराग्राफ में बताया गया है। जैसा कि यह , बाइट्स में सबसे छोटा कार्यक्रम जीत जाएगा। सौभाग्य!


1
स्पेस, टैब और न्यूलाइन?
स्टीवी ग्रिफिन

11
आपको यह उजागर करना चाहिए कि duplicated for every repeated character in the source codeयह चुनौती में सभी अंतर बनाता है
रॉड

6
क्या आप व्युत्क्रम का उदाहरण दे सकते हैं जहां कई अक्षर दोहराए जाते हैं (और कई बार)? कहो तो 11234512345?
ग्यूसेप

4
यह डुप्लिकेट कैसे है? संबंधित, हाँ। डुप्लिकेट, नहीं! यह जिस तरह से भाषा आप डुप्लिकेट वर्ण हो करने के लिए है, जहां में और अधिक कठिन। ध्यान दें कि आप केवल एक स्ट्रिंग को डुप्लिकेट नहीं कर सकते हैं, क्योंकि प्रत्येक स्ट्रिंग से आपको जितने वर्णों को निकालना होगा, वह अलग-अलग है।
स्टीवी ग्रिफिन

1
@StewieGriffin मैं इसे "डप" के बजाय "अस्पष्ट" के रूप में वीटीसी करूंगा क्योंकि (लगभग) हर उत्तर में यह टिप्पणी करने की कोशिश की duplicated for every repeated character in the source codeजाती है कि उस मानदंड के लिए क्या मतलब है या यदि प्रस्तुत करना मान्य है, क्योंकि ओपी ने इसे संबोधित नहीं किया है यहाँ कुछ सवाल।
ग्यूसेप

जवाबों:


7

ब्रेन-फ्लैक , 221 207 बाइट्स

के लिए +1 शामिल है -A

(((((((()()()()){}){}()){}){})()){}{}){({}[()]<((((((()()()()){}){}){})<>[()()()])[()])((((()()()){})){}{})<>((()()()()){}){({}[()]<(({})())>)}{}({}()())<>{{({}<>[()]<(({})())><>)}{}<>(({}())()())<>}<>>)}{}

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

# Push 206 (the number of times to duplicate the output)
(((((((()()()()){}){}()){}){})()){}{})

# For 0 to 206
{({}[()]<

    # Push 32 on this stack and 18, 28 and 29 to the other
    # 18, 28 and 29 are the distances between the sets of braces 
    ((((((()()()()){}){}){})<>[()()()])[()])((((()()()){})){}{})<>

    # For 0 to 8
    ((()()()()){}){({}[()]<

        # Push TOS, TOS + 1
        (({})())

    # end For 0 to 8
    >)}{}

    # Push TOS + 2 
    # skips '(' and ')'
    ({}()())

    # For each value on the off stack (18, 28, 28)
    <>{

        # For 0 to that number
        {({}<>[()]<

            # Push TOS, TOS + 1
            (({})())

        # End for 0 to that number
        ><>)}{}

        # Push TOS + 1, TOS + 3 (skips this set of braces)
        <>(({}())()())<>

    # End for each value on the off stack (18, 28, 28)
    }<>

 # End for 0 to 206
 >)}{}

मुझे लगता है कि आपको केवल [पांच बार निकालना चाहिए , हर बार नहीं। ध्यान दें कि 2केवल एक बार उदाहरण में हटा दिया जाता है। चुनौती हालांकि थोड़ी भ्रमित करने वाली है।
स्टेवि ग्रिफिन

दिलचस्प है कि यह मानक क्वीन की तुलना में बहुत कम है। +1:)
जेम्स

2
यह वास्तव में लंगड़ा है, और आपके उत्तर की तुलना में काफी कम दिलचस्प है, लेकिन तकनीकी रूप से, !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_abcdefghijklmnopqrstuvwxyz {|} ~ ~ को बेहतर स्कोर मिलेगा: /
जेम्स

6

CJam , 17 बाइट्स

{s95c+'|,32>\-}_~

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

प्रिंटों

 !"#$%&()*./014678:;<=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^`abdefghijklmnopqrtuvwxyz

व्याख्या

लक्ष्य मानक क्वीन को संशोधित करना था

{"_~"}_~

कार्यक्रम में ऐसा कोई चरित्र दोहराया नहीं गया है। इसका कारण यह है कि CJam के पास एक अलग ऑपरेटर है जिसका उपयोग हम मुद्रण योग्य ASCII रेंज से वर्णों को निकालने के लिए कर सकते हैं, लेकिन यह घटनाओं की संख्या को ध्यान में नहीं रखता है। इसे लागू करना हाथ से संभवत: लंबा होगा, इसलिए मुझे यह सुनिश्चित करने की आवश्यकता थी कि हर चरित्र केवल एक बार दिखाई दे और हमें घटनाओं के बारे में चिंता करने की आवश्यकता नहीं है।

{      e# Quine framework. Executes the block while leaving another copy of the
       e# block on the stack.
  s    e#   Stringify the block, giving us "{s95c+'|,32>\-}".
  95c  e#   Convert 95 to a character, which gives us '_' without repeating
       e#   it in the source code.
  +    e#   Append it to the string. We don't need to worry about '~', we'll just
       e#   leave it out of the printable ASCII range to begin with.
  '|,  e#   Get a character range from the null byte up to '{'. This omits "|}~",
       e#   but those are in the program anyway, it doesn't matter.
  32>  e#   Discard the unprintable characters.
  \-   e#   Subtract the source string from the printable ASCII range.
}_~


2

05AB1E , 95 61 60 बाइट्स (58 बी / सी मुझे पसंद नहीं है)

A?9L<J, !"'#$%&()*+-./:;=>@BCDEFGHIKMNOPQRSTUVWXYZ[\]^_`{|}~

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

"केवल ASCII वर्णों" द्वारा अमान्य पुराना उत्तर, बहुत सारी आज्ञाएँ यहाँ मान्य नहीं हैं।

यह abcdefghijklmnopqrstuvwxyz012345678एक बार प्रिंट करता है क्योंकि कोई डुप्लिकेट वर्ण नहीं हैं।


BCDEFGHIKMNOPQRSTUVWXYZहटाया गया संस्करण :

कार्य प्रगति पर है ... मुझे लगता है कि ~ 60 बाइट्स उतनी ही कम है जितनी आप बिना गैर-ASCII वर्णों के 05AB1E में प्राप्त करते हैं।

05AB1E , 58 बाइट्स

T5+FA'uK?Au"ADLJFKST"SK?9L<5KJ?} !#$%&()*>-./:;=@[]^_`{|~\

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

दोहराया वर्णों के कारण आउटपुट x12 प्रिंट करता है:

['""', '55', '???', 'AAA', 'FF', 'JJ', 'KKKK', 'LL', 'SS', 'TT', 'uu']

यह भी सही ढंग से समाप्त नहीं करता है, उस पर काम कर रहा है ...


अमान्य पुराने उत्तर (गैर- ASCII वर्णों के कारण) हटा दिए गए हैं, संपादित इतिहास देखें।


"एक उलटा क्वीन एक गैर-खाली कार्यक्रम है जो अपने स्रोत कोड को पढ़े बिना अपने स्रोत कोड के व्युत्क्रम को प्रिंट करता है, और इसमें केवल मुद्रण योग्य-असिसी वर्ण होते हैं ।" मैं 05AB1E उत्तर पर काम कर रहा था, तब तक, जब तक मैंने इस पर ध्यान नहीं दिया।
केस्मार्ट्स

1
@Smarts ने 76 बाइट्स की लागत तय की।
मैजिक ऑक्टोपस Urn

2
आमतौर पर, एक कोड-गोल्फ चुनौती में, कोई व्यक्ति 05AB1E को "बीट्स जावा" की तुलना में थोड़ा बेहतर करने की उम्मीद करेगा ।
केस्मार्ट्स

@KSmarts कंधे उचकाने की क्रिया करता है, तो आप न दें esolangs आसानी परिभाषा से प्रतिस्पर्धा करते हैं, आप एक व्यंग्यात्मक esolang जवाब लायक: पी।
मैजिक ऑक्टोपस Urn

0

जावा 8, 106 99 190 बाइट्स

class i {/*{}!"#$%&'()+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`bdefghjkmnopqrtuvwxyz|~!"#$%&'()+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`claibdefghjkmnopqrtuvwxyz|~*/}

आप शायद अंतरिक्ष को हटाकर इसे गोल्फ कर सकते हैं i {क्योंकि आपके पास पहले से ही एक जगह है
ओक्सएक्स

1
मेरा मानना ​​है कि हर पात्र को वैध होने के लिए उसी समय का होना चाहिए
रॉबर्टो ग्राहम

मुझे यकीन नहीं है कि अगर मैं चुनौती को पूरी तरह से समझता हूं, लेकिन क्या यह class i{/*!"#$%&'()+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`bdefghjkmnopqrtuvwxyz|~*/}पर्याप्त नहीं है? इसमें स्रोत कोड में सभी मुद्रण योग्य-ASCII शामिल हैं, और कुछ भी नहीं आउटपुट करता है। हिस्सा " स्रोत कोड में हर दोहराया चरित्र के लिए दोहराया गया " उत्पादन के लिए लागू होता है, तो भले ही sमें दोहराया गया है classऔर *और /की वजह से दोहराया गया है /* */, चार बार कुछ भी नहीं अभी भी कुछ नहीं है outputting।
केविन क्रूज़सेन

इसके अलावा, अगर मैं वास्तव में सही हूं, तो आप इसे गोल्फ भी कर सकते हैं: interface Z{}//!"#$%&'()*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY[\]^_`bdghjklmopqsuvwxyz|~( 97 बाइट्स )
केविन क्रूज़सेन

0

जावास्क्रिप्ट (ईएस 6), 103 101 बाइट्स

_=>` !"#$%&'()*+,-.0123456789:;<?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^abcdefghijklmnopqrstuvwxyz{|}~`//_=>\\

पुराना समाधान (103 बाइट्स का उपयोग करके alert)

alert;;alert`\ \!"#$%&'()*+,-./0123456789:<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_bcdfghijkmnopqsuvwxyz{|}~`

पुराना (अमान्य) समाधान (96 बाइट्स)

alert()// !"#$%&'*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`bcdfghijkmnopqsuvwxyz{|}~

आपके पास दो हैं //, जिसका अर्थ है कि आपको एक /हटाए जाने के साथ प्रिंट करने योग्य वर्णों को आउटपुट करना होगा । (मुझे लगता है)
स्टीवी ग्रिफिन

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